vue指令和组件之间数据共享

一、 vue指令按照不用用途可分为如下6大类:

😃 内容渲染指令:v-text、{{}} 、v-html
😃 属性绑定指令:v-bind(简写是:
😃 事件绑定指令:v-on(简写是@记住:事件修饰符
😃 双向绑定指令:v-model
😃 条件绑定指令:v-if 、v-show
😃 列表渲染指令:v-for

二、 组件之间的数据共享

  1. 组件传值:父向子传值、子向父传值、兄弟之间传值。
  2. 路由传值:$route传值

2.1 组件传值

  • 父向子传值 (props)
//父组件  发送方
<son :msg="message" />

data()
{
	return {
	message:"hello"}
}
//子组件
<p> 父组件传过来的msg值是{{ msg }} </p>

props:['msg']
  • 子向父传值(emit)
//子组件 发送方
methods:{
	add(){
	this.count += 1//修改数据时,通过$emit()触发自定义事件
	this.$emit('numchange',this.count)
	}
}
//父组件 接收方
<son @numchange="getNewCount" />

method:{
	getNewCount(val){
		this.countFromSon = val
	}
}
  • 任意组件之间传值(emit、on)

(1) 创建eventBus,js模块,并向外共享一个Vue实例对象
(2) 数据发送方,调用bus.$emit(’事件名称‘,要发送的数据)方法触发自定义事件
(3)数据接收方,调用bus.$on(’事件名称‘,事件处理函数)方法注册一个自定义事件

在这里插入图片描述

(4)也可设置全局EventBus:

在这里插入图片描述

2.2 路由传值

this.$router.push({
    path: '/StandbyMessage',
    query: {
         ...DATA,
         activeName: activeName,
     },
 this.cylinder = {
         ...this.$route.query,
     };
 this.activeName = this.$route.query.activeName;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值