• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    詳解Vue + Vuex 如何使用 vm.$nextTick

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:25:21
    文檔

    詳解Vue + Vuex 如何使用 vm.$nextTick

    詳解Vue + Vuex 如何使用 vm.$nextTick:vm.$nextTick 簡單說,因為DOM至少會在當(dāng)前tick里面的代碼全部執(zhí)行完畢再更新。所以不可能做到在修改數(shù)據(jù)后并且DOM更新后再執(zhí)行,要保證在DOM更新以后再執(zhí)行某一塊代碼,就必須把這塊代碼放到下一次事件循環(huán)里面,比如setTimeout(fn, 0),這樣D
    推薦度:
    導(dǎo)讀詳解Vue + Vuex 如何使用 vm.$nextTick:vm.$nextTick 簡單說,因為DOM至少會在當(dāng)前tick里面的代碼全部執(zhí)行完畢再更新。所以不可能做到在修改數(shù)據(jù)后并且DOM更新后再執(zhí)行,要保證在DOM更新以后再執(zhí)行某一塊代碼,就必須把這塊代碼放到下一次事件循環(huán)里面,比如setTimeout(fn, 0),這樣D

    vm.$nextTick

    簡單說,因為DOM至少會在當(dāng)前tick里面的代碼全部執(zhí)行完畢再更新。所以不可能做到在修改數(shù)據(jù)后并且DOM更新后再執(zhí)行,要保證在DOM更新以后再執(zhí)行某一塊代碼,就必須把這塊代碼放到下一次事件循環(huán)里面,比如setTimeout(fn, 0),這樣DOM更新后,就會立即執(zhí)行這塊代碼。

    //改變數(shù)據(jù) 
    vm.message = 'changed' 
     
    //想要立即使用更新后的DOM。這樣不行,因為設(shè)置message后DOM還沒有更新 
    console.log(vm.$el.textContent) // 并不會得到'changed' 
     
    //這樣可以,nextTick里面的代碼會在DOM更新后執(zhí)行 
    Vue.nextTick(function(){ 
     console.log(vm.$el.textContent) //可以得到'changed' 
    }) 
    
    

    vm.$nextTick 的作用是將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。

    正常在 ready/mounted 中獲取數(shù)據(jù), 那么操作是很簡單的

    ready() { // vue2 為 mounted() {
     var request = $.ajax({
     type: "POST",
     dataType: 'json',
     url: "api.php"
     });
     request.then((json) => {
     // balabala
     this.$nextTick(function () {
     // balabala
     })
     });
    }
    

    如果是用 vuex 的話, 由于vuex的數(shù)據(jù)操作都在 action 和 mutations, 然后在 ready/mounted 中調(diào)用 action 里的函數(shù), 那么這時候該怎么用 vm.$nextTick 呢?

    這時候我們就需要用到 Promise 了, 具體代碼如下:

    首頁是api.js

    export default {
     getFromConfig(config) {
     return $.ajax({ data: config })
     }
    }
    

    然后是action.js

    export const getArticleList = ({dispatch}, config) => {
     return api.getFromConfig(config).then(({data}) => {
     dispatch(types.RECEIVE_ARTICLE, data, config.page)
     })
    }

    這里一定要加上return, 這樣就可以返回一個Promise對象

    最后是vue組件

    methods: {
     loadMore(page = this.page) {
     var id = this.$route.params.id || ""
     Promise.all([
     this.getArticleList({
     id: id,
     page: page
     })
     ]).then(() => {
     this.$nextTick(function () {
     // balabala
     })
     })
     }
    }

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    詳解Vue + Vuex 如何使用 vm.$nextTick

    詳解Vue + Vuex 如何使用 vm.$nextTick:vm.$nextTick 簡單說,因為DOM至少會在當(dāng)前tick里面的代碼全部執(zhí)行完畢再更新。所以不可能做到在修改數(shù)據(jù)后并且DOM更新后再執(zhí)行,要保證在DOM更新以后再執(zhí)行某一塊代碼,就必須把這塊代碼放到下一次事件循環(huán)里面,比如setTimeout(fn, 0),這樣D
    推薦度:
    標(biāo)簽: 怎么用 如何使用 使用
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 一本久久a久久精品综合夜夜| 国产高清在线精品一区小说| 欧美国产日韩精品| 亚洲精品无码永久在线观看| 视频二区国产精品职场同事| 热re99久久精品国99热| 久久99精品国产麻豆蜜芽| 欧美日韩精品一区二区在线播放| 午夜精品久久久久久中宇| 欧美人与性动交α欧美精品成人色XXXX视频 | 精品亚洲成α人无码成α在线观看| 国产精品国产三级国产专播| 久久99热只有频精品8| 亚洲精品狼友在线播放| 手机日韩精品视频在线看网站| 久久99热这里只有精品国产| 国产精品永久免费视频| 99久久精品免费| 6080亚洲精品午夜福利| 欧美精品亚洲精品日韩1818| 国产精品视频网站你懂得| 国产69精品久久久久777| 国产麻豆精品久久一二三| 精品无码人妻一区二区三区| 麻豆亚洲AV永久无码精品久久| 日韩精品真人荷官无码| 骚片AV蜜桃精品一区| 久久精品国产清高在天天线| 国产亚洲精品精华液| 国产乱人伦偷精品视频免下载| 国产精品无码成人午夜电影| 国产精品日韩AV在线播放| 国产精品揄拍100视频| 大桥未久在线精品视频在线| 国产精品电影在线观看| 色综合久久精品中文字幕首页| 91国内揄拍国内精品情侣对白| 99久久人人爽亚洲精品美女| 99视频在线精品国自产拍亚瑟 | 四虎精品8848ys一区二区| 四虎影视884a精品国产四虎|