Vue观察者模式

Vue观察者模式详解:
观察者模式,又称订阅发布模式(总线),用于非父子关系的vue组件之间的值的传递。
代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>组件间的传值,Bus/总线/订阅发布模式/观察者模式</title>
	</head>
	<body>
		<div id="app">
			<child  content="helloword"></child>
			<child content="hellovue"></child>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/vue"></script>
		<script type="text/javascript">
			Vue.prototype.bus=new Vue();
			Vue.component("child",{
				data(){
					return {
						contentchild:this.content
					}
				},
				props:["content"],
				template:"<div @click='clickfun'>{{contentchild}}</div>",
				methods:{
					clickfun(){
						this.bus.$emit("change",this.contentchild);
					}
				},
				mounted() {
					let _this=this;
					this.bus.$on("change",function(msg){
						_this.contentchild=msg;
						// alert(msg);
					})
				}
			})
			var app=new Vue({
				el:"#app"		
			})
			
		</script>
	</body>
</html>

代码解析:
data(){ return { contentchild:this.content } },:父组件传递给子组件的值无法直接修改,在子组件中赋值一个变量,接受传来的数据,进行修改,即可。

Vue小知识点:
1、子组件定义规则为驼峰命名法,如(MyLtem),在父组件中使用时,应用小写,格式为my-ltem。
2、用html代码写vue,引入vue.js应该在创建Vue实例所在scirpt的上方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值