原生的ajax+vue請(qǐng)求數(shù)據(jù)渲染數(shù)據(jù)

// 定義工具方法

let Util = {

? ? /**

? ? * 發(fā)送異步請(qǐng)求

? ? * @url 請(qǐng)求的地址

? ? * @fn 請(qǐng)求成功時(shí)候的回調(diào)函數(shù)

? ? **/

? ? getData(url, fn) {

? ? ? ? // 實(shí)例化xhr對(duì)象

? ? ? ? let xhr = new XMLHttpRequest();

? ? ? ? // 監(jiān)聽(tīng)狀態(tài)變化

? ? ? ? xhr.onreadystatechange = () => {

? ? ? ? ? ? // 監(jiān)聽(tīng)數(shù)據(jù)請(qǐng)求完畢

? ? ? ? ? ? if (xhr.readyState === 4) {

? ? ? ? ? ? ? ? // 判斷狀態(tài)碼

? ? ? ? ? ? ? ? if (xhr.status === 200) {

? ? ? ? ? ? ? ? ? ? // 將數(shù)據(jù)轉(zhuǎn)化成json字符串

? ? ? ? ? ? ? ? ? ? fn && fn(JSON.parse(xhr.responseText))

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? // 打開(kāi)請(qǐng)求

? ? ? ? xhr.open('GET', url, true);

? ? ? ? // 發(fā)送數(shù)據(jù)

? ? ? ? xhr.send(null)

? ? },

? ? postData(url, params, fn) {

? ? ? ? // 實(shí)例化xhr對(duì)象

? ? ? ? let xhr = new XMLHttpRequest();

? ? ? ? // 監(jiān)聽(tīng)狀態(tài)變化

? ? ? ? xhr.onreadystatechange = () => {

? ? ? ? ? ? // 監(jiān)聽(tīng)數(shù)據(jù)請(qǐng)求完畢

? ? ? ? ? ? if (xhr.readyState === 4) {

? ? ? ? ? ? ? ? // 判斷狀態(tài)碼

? ? ? ? ? ? ? ? if (xhr.status === 200) {

? ? ? ? ? ? ? ? ? ? // 將數(shù)據(jù)轉(zhuǎn)化成json字符串

? ? ? ? ? ? ? ? ? ? fn && fn(JSON.parse(xhr.responseText))

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? // 打開(kāi)請(qǐng)求

? ? ? ? xhr.open('POST', url, true);

? ? ? ? xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");

? ? ? ? // 發(fā)送數(shù)據(jù)

? ? ? ? xhr.send(params);

? ? },

? ? /**

? ? * 將對(duì)象轉(zhuǎn)化成query的形式

? ? * @obj 轉(zhuǎn)化的對(duì)象 {color:red, num:100}

? ? * return ?color=red&num=100

? ? **/

? ? objToQuery(obj,type) {

? ? ? ? type = type ? '':'?';

? ? ? ? let result = '';

? ? ? ? // 遍歷對(duì)象,轉(zhuǎn)化成json

? ? ? ? for (var i in obj) {

? ? ? ? ? ? result += '&' + i + '=' + obj[i]

? ? ? ? }

? ? ? ? // 去除最后一個(gè)&

? ? ? ? return type + result.slice(1)

? ? }

}

new Vue({

? el:"#app",

? data:{

? ? msg:"hello world",

? ? list:[]

? },

? created:function(){

? ? var that = this;

? ? // 提供post,get請(qǐng)求

? ? Util.getData("https://a.daxiangclass.com/offer.php/api/v1/interview?page=1&size=100",function(res){

? ? ? ? that.list = res.data;? ? ?

? ? });

? }

})

{{item.title}}



在HTML文檔

<p>{{item.title}}</p>//渲染數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,774評(píng)論 1 45
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,546評(píng)論 0 7
  • 我們自己模仿著jQuery封裝Ajax請(qǐng)求。 原生的Ajax請(qǐng)求上篇文章已經(jīng)都說(shuō)清楚了,大家應(yīng)該會(huì)感覺(jué)調(diào)用起來(lái)代碼...
    zhanghao121閱讀 292評(píng)論 0 0
  • 好,我們接著上篇的內(nèi)容接續(xù)來(lái)講解Ajax相關(guān)的內(nèi)容。今天要將的是我們自己模仿著jQuery封裝Ajax請(qǐng)求。 原生...
    Emotion_C閱讀 358評(píng)論 0 0
  • # Ajax標(biāo)簽(空格分隔): 筆記整理---[TOC]### 從輸入網(wǎng)址開(kāi)始:- 在學(xué)習(xí)ajax之前,你應(yīng)該先了...
    V8閱讀 343評(píng)論 1 0

友情鏈接更多精彩內(nèi)容