真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vue強制刷新組件的方法示例

前言:

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設計、成都網(wǎng)站建設與策劃設計,松嶺網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:松嶺等地區(qū)。松嶺做網(wǎng)站價格咨詢:028-86922220

在開發(fā)過程中,有時候會遇到這么一種情況,通過動態(tài)的賦值,但是dom沒有及時更新,能夠獲取到動態(tài)賦的值,但是無法獲取到雙向綁定的dom節(jié)點,這就需要我們手動進行強制刷新組件。

官網(wǎng)是這樣說的:

vue強制刷新組件的方法示例

可能你還不大理解,請繼續(xù)往下看,下面是我的一個例子,來詳細解說了這個方法的使用,

vue強制刷新組件的方法示例

第一個打印結(jié)果

vue強制刷新組件的方法示例

第二個打印結(jié)果

         vue強制刷新組件的方法示例

一、問題描述:父組件通過v-for渲染子組件,刪除子組件數(shù)據(jù)出現(xiàn)異常。

 二、問題原因:出現(xiàn)異常的數(shù)據(jù)不是響應式依賴,是從vuex讀取的。通過測試發(fā)現(xiàn),父組件刪除數(shù)據(jù),沒有重新創(chuàng)建子組件,懷疑是子組件異常的數(shù)據(jù)是讀取的緩存副本。

三、問題解決:根據(jù)v-if改變dom結(jié)構(gòu)的特性,手動使子組件重新創(chuàng)建。

1.設置一個數(shù)據(jù)變量isrefresh=true

vue強制刷新組件的方法示例

2.初始v-if=isrefresh

vue強制刷新組件的方法示例

3.刪除時,配合$nextTick()DOM渲染回調(diào)函數(shù),使子組件重新創(chuàng)建

vue強制刷新組件的方法示例
/************************************************************************************************************************************/ 

PS:vue 強制刷新子組件

把一個組件重置到初始狀態(tài)是一個常見的需求,推薦的做法有兩種,一種是父組件重置子組件的 prop,另一種是子組件暴露一個重置的方法供父組件調(diào)用。但有些時候,子組件既沒有提供重置的方法,也沒提供 prop 來重置自己的狀態(tài)。更重要的是,這個子組件我們還動不了。于是我們就需要一種 hack 的方式來強制子組件重置到初始狀態(tài)。方法如下:

//   原理就是:采用v-if會銷毀組件并且重繪,這樣就會重載組件
// 子組件:自己封裝的組件
  
// 然后再父組件內(nèi)的增刪改查方法中操作,就好了
this.DestroyIncomeStatistics = false;
// 然后你的方法成功后
// Vue 實現(xiàn)響應式并不是數(shù)據(jù)發(fā)生變化之后 DOM 立即變化,而是按一定的策略進行 DOM 的更新。
// 在vue的深入響應式原理中有解釋:
// $nextTick 是在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào),在修改數(shù)據(jù)之后使用 $nextTick,則可以在回調(diào)中獲取更新后的 DOM
  this.$nextTick(() => {
     this.DestroyIncomeStatistics = true;
    });
//這樣的話就會完成強制刷新

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


分享名稱:vue強制刷新組件的方法示例
當前URL:http://weahome.cn/article/gseejh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部