vue父組件向子組件傳對象,不實時更新解決


思路1:就是讓利用v-if的重新渲染機制

1.首先考慮的就是手動刷了,給組件加個v-if=”someShow“;

2.在父組件添加如下方法;

//  這是組件上寫法 :<my-component v-if="someShow"></my-component>

// 下邊寫在父組件的methods里
refesh:function(){
	this.someShow=false;
	var _this=this;
	this.$nextTick(function(){
		_this.someShow = true;
	})
  
}
// $nextTick
// $nextTick 是在下次 DOM 更新循環結束之后執行延遲回調,在修改數據之后使用 $nextTick,則可以在回調中獲取更新后的 DOM  這樣重新渲染就會是最新數據了

這樣就完美解決了不更新的問題。、

思路2:利用watch監聽

在子組件中監聽你要的數據,當然別監聽對象,監聽了不一定好使。親測不好使,測過好使的,可以給我留言。

    data:function(){
		return {
			title:"",
			content:"",
			btn:""
		}
	},   
     methods:{
		changeTitle:function(){
			this.title=this.listTitle;
            // 這里的每次變化了就復制給組件上的變量,視圖也就更改了			
		},
		changeList:function(){
			this.content=this.listList;
		},
		changeBtn:function(){
			this.btn=this.listBtn;

		}
	},
	watch:{
		listTitle:"changeTitle",
		listList:"changeList",
		listBtn:"changeBtn"
		// 冒號前邊這個就是從父組件傳過來的,后邊的就是變化了的監聽函數
	}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM