国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:24:15
字體:
供稿:網(wǎng)友

vm.$nextTick

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

//改變數(shù)據(jù) vm.message = 'changed'  //想要立即使用更新后的DOM。這樣不行,因?yàn)樵O(shè)置message后DOM還沒有更新 console.log(vm.$el.textContent) // 并不會(huì)得到'changed'  //這樣可以,nextTick里面的代碼會(huì)在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ù), 那么這時(shí)候該怎么用 vm.$nextTick 呢?

這時(shí)候我們就需要用到 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, 這樣就可以返回一個(gè)Promise對(duì)象

最后是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      })    })  }}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 呼玛县| 东城区| 淳安县| 泸溪县| 平远县| 宜黄县| 武城县| 临泉县| 屯昌县| 积石山| 舞阳县| 永济市| 封开县| 石泉县| 高平市| 昌邑市| 兴安县| 涪陵区| 托里县| 积石山| 乐昌市| 金坛市| 天镇县| 离岛区| 华安县| 崇礼县| 筠连县| 和龙市| 松溪县| 南城县| 华池县| 溧阳市| 泰顺县| 沂源县| 华容县| 开平市| 黄平县| 衢州市| 吉首市| 互助| 克什克腾旗|