javascript - Vue中的data資料透過Ajax獲取,然後實例化Vue。如何控制讓頁面載入完畢後先執行Ajax請求,請求成功後再實例化Vue?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-26 10:50:56
0
7
928

Vue中的data資料透過Ajax獲取,然後實例化Vue。
如何控制讓頁面載入完畢後先執行Ajax請求,請求成功後再實例化Vue?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(7)
習慣沉默

onload事件綁定Ajax請求,請求成功回呼中再實例化Vue就可以了。

伊谢尔伦

昨天在百度知道那裡看到類似的問題,
想問一下是那裡過來的嗎?

想知道為什麼要這樣做?

我的答案是:不建議這樣做。

滿天的星座

你可以在created中請求、

最好不要讓頁面等待請求、不然會有空白、

created的時候請求如果到了mounted還拿不到結果、可以出loading動畫

不要讓頁面等待請求之後再渲染、萬一用戶網速不好、卻看不到loading動畫而是一片空白、首先會想到網站的問題、如果有loading動畫、才會知道、是在等待請求

用loading動畫、更讓使用者容易理解

某草草
$.ajax({
    url: "...", 
    ...
    success: function(){
        active();
    }
});

function active(){
     let app=new Vue({
        data:{
        },
        ...
    })
}

就是等請求成功了,再執行函數,執行vue的實例化!

学习ing

其實這是很常見的需求。

Vue可以在第一時間實例化,這時的data可以沒有值,介面上展示loading或"正在載入"之類的提示,同時在實例的created鉤子中發起資料請求,得到資料後將實例賦值就行了,vm.data = ajaxData

Peter_Zhu
$(document).ready(function() {
    $.ajax({
        type: "get",
        async: false,
        url: '',
        dataType: "JSONP",
        beforeSend: function(){
            $("#content .loading").html("数据加载中<img class='loading-gif' src='images/loading.gif'/>");
        },
        success: function (data) {
            if(data.orders.length != 0){
                $("#content .loading").empty();
                // 实例化
            }
            else{
                $("#content .loading").html("暂时没有你的数据哦");
            }
        },
        error: function (message) {
            $("#content .loading").html("数据请求失败,请稍候再试");
        }
    });
});

$(document).ready()表示頁面載入後執行裡面的函數。
jquery ajax的beforeSend裡寫點加載提示,success就清空提示然後有數據就實例化沒有就提示,請求error也給提示,這是最近實習剛寫的一個,個人感覺也蠻完整了。

阿神

這個不是技術問題,這個是產品設計問題,或許你應該問一下你們產品,為什麼會有這樣的設計。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板