vue变量传值_vue组件之间相互传值的方式

本文详细介绍了Vue中组件之间的通信方式,包括父组件向子组件通过props传递值,子组件如何通过$emit向父组件回传值,以及兄弟组件间的通信。此外,还讨论了在多层组件通信中如何使用provide/inject以及在复杂场景下采用Vuex的状态管理。最后总结了各种通信方式的适用场景。
摘要由CSDN通过智能技术生成

我们都知道 Vue 作为一个轻量级的前端框架,其核心就是组件化开发。Vue 就是由一个一个的组件构成的,组件化是它的精髓,也是最强大的功能之一。而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。

但在实际项目开发过程中,我们需要访问其他组件的数据,这样就就有了组件通信的问题。在 vue 中组件之间的关系有:父子,兄弟,隔代。针对不同的关系,怎么实现数据传递,就是接下来要讲的。

一、父组件向子组件传值

即父组件通过属性的方式向子组件传值,子组件通过 props 来接收。

在父组件的子组件标签中绑定自定义属性

//父组件

exportdefault{

components: {

UserDetail

}

......

}

在子组件中使用props(可以是数组也可以是对象)接收即可。可以传多个属性。

//子组件

export default{

props: ['myName']

}

​/*props: { myName: String } //这样指定传入的类型,如果类型不对会警告

props: { myName: [String, Number] } // 多个可能的类型

prosp: { myName: { type: String, requires: true } } //必填的的字符串

props: {

childMsg: {

type: Array,

default: () => []

}

} // default指定默认值

如果 props 验证失败,会在控制台发出一个警告。*/

子组件接收的父组件的值分为引用类型和普通类型两种:

普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)

引用类型:数组(Array)、对象(Object)

基于 vue 的单向数据流,即组件之间的数据是单向流通的,子组件是不允许直接对父组件传来的值进行修改的,所以应该避免这种直接修改父组件传过来的值的操作,否则控制台会报错。

如果传过来的值是简单数据类型,是可以在子组件中修改,也不会影响其他兄弟组件内同样调用了来自该父组件的值。

具体操作是可以先把传过来的值重新赋值给data中的一个变量,然后再更改那个变量。

//子组件

export default{

props: ['myName'],

data() {return{

name :this.myName //把传过来的值赋值给新的变量

}

},

watch: {

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值