是可以通过updated传值但是为什么要点击两三次才有正确传值结果?
来源:4-5 非父子组件间的传值
 
			qq_微笑王子_0
2019-05-27
 <body>
<div id="app">
	<child content="lee"  @cc="hh"></child>
	<child content="dell" @cc="hh"></child>
{{inputValue}}
</div>
<script type="text/javascript">
		
			//修改vue 原型链
			Vue.prototype.bas=new Vue()		
			Vue.prototype.z=3;
	Vue.component("child",
	{
		props:{
			content:{
				type:[String]	
			}
		},
		//模板方法为had
		template:"<div @click='had'>{{content}}</div>",
		methods:{
			had:function(){
		
	this.bas.$emit("change",this.content)
 	
	this.$emit("cc")
 
 
			}	
		},
 
		
	}
	
	
	)
	var vm=new Vue({
	el:"#app",
	data:{
	
inputValue:1
	},
methods:{
hh:function(mm){
 
this.inputValue=2
}
},
//原型链的z一下子获得但是bas.on第一次不会触发?
 	 updated:function(){
		console.log('触发updated'+"获取vue原型链的z"+vm.z)
		var this_=this
		vm.bas.$on('change',function(msg){
		alert("进入方法 ")
		console.log("bas里面的this为"+this_.content)
		console.log("this_"+this_.content)
		console.log("传过来的thiscontent"+msg)
		this_.content=msg
		})
		}
	 
	
})
</script>
  </body>
写回答
	1回答
- 
				
				因为当 Vue 监听到数据发生更新时,update 才会被执行,bus 指向的 vue 实例才开始监听 change 事件,你只有再点击一次,才能监听到。你应该使用 mounted 052019-05-28
相似问题
