Vue實(shí)現(xiàn)組件強(qiáng)制二次渲染

  • 應(yīng)用場景:數(shù)據(jù)通過異步操作后,對(duì)之前剛加載的數(shù)據(jù)進(jìn)行變更后,發(fā)現(xiàn)數(shù)據(jù)不能生效
  • 實(shí)現(xiàn)目的:使組件強(qiáng)制二次渲染
  • 解決方案:
  1. 當(dāng)數(shù)據(jù)變更后,通過watch 監(jiān)聽,先去銷毀當(dāng)前的組件,然后再重現(xiàn)渲染。使用 v-if 可以解決這個(gè)問題

<template>
   <third-comp v-if="reFresh"/>
</template>
 
<script>
   export default{
       data(){
          return {
                reFresh:true,
                menuTree:[]
            }
       },
       watch:{
             menuTree(){
 
                  this.reFresh= false
                  this.$nextTick(()=>{
                    
                    this.reFresh = true
                })
            }
       }
}
</script>
  1. 通過vue key 實(shí)現(xiàn),原理官方文檔。所以當(dāng)key 值變更時(shí),會(huì)自動(dòng)的重新渲染。


<template>
   <third-comp :key="menuKey"/>
</template>
 
<script>
   export default{
       data(){
          return {
                menuKey:1
            }
       },
       watch:{
             menuTree(){
 
                ++this.menuKey
            }
       }
}
</script>

卡布奇諾、
\color{green}{\Large\mathbf{如有問題歡迎積極探討}}

?著作權(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)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • vue概述 在官方文檔中,有一句話對(duì)Vue的定位說的很明確:Vue.js 的核心是一個(gè)允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,624評(píng)論 0 25
  • 一:什么是閉包?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在本質(zhì)上,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 10,053評(píng)論 1 52
  • 主要還是自己看的,所有內(nèi)容來自官方文檔。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,540評(píng)論 0 25
  • 三、組件 組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML元素,封裝可重用...
    小山居閱讀 713評(píng)論 0 1
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,373評(píng)論 0 6

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