vue组件传值和单项数据流

本文详细介绍了Vue组件间四种传值方式:props、插槽(包括具名插槽)、$emit事件及bus总线,并强调了单向数据流的概念。通过示例代码展示了每个方法的实现步骤,帮助读者理解Vue组件通信。
摘要由CSDN通过智能技术生成

【vue】vue组件传值和单项数据流


前言

一、vue 组件传值有以下四种方式

  1. 父传子:props属性传值
  2. 父传子:slot插槽传值
  3. 子传父:$emit事件传值
  4. 非父子:bus总线传值
下面我们开使用代码来介绍vue组件传值的四中方式
1.父传子(props)

代码如下(示例):

  <script src='vue.js'></script>
    <!-- vue模板 -->
    <div id='myApp'>
        父组件中的输入: 
        <input type="text" v-model="name"> <br>
        <hr>
        子组件的显示:
        <my-com :my-data="name"></my-com>
    </div>
    <!-- 组件模板 -->
    <template id='com'>
        <span>
            {
  {myData}}
        </span>
    </template>
    <script>
        // 组件
        Vue.component('myCom',{
    
            template: '#com',
            // 使用peops字段添加自定义属性,用于接收父组件传值, 值是数组结构
            props: ["myData"],
            created() {
    
                console.log(this.myData)
            },
            watch:{
    
                myData(newValue){
    console.log(newValue)}
            },
            computed:{
     }
        })
        // 根组件
        var vm = new Vue({
    
            el: '#myApp',
            data: {
    
                name: "张三"
            }
        })
</script>

总结: 父组件向子组件传值步骤:
1. 在子组件对象中通过props字段添加自定义属性【props: [“myData”]】
2. 在子组件标签中通过v-bind把自定义属性赋值为父组件的动态数据

<my-com :my-data="name"></my-com>

3. 在子组件模板中, 使用自定义属性渲染数据

<span> {
  {myData}} </span>
2-1.父传子(插槽)

代码如下(示例):

  <script src='vue.js'></script>
    <!-- vue模板 -->
    <div id='myApp'>
        父组件输入: 
        <input type="text" v-model="name"> <hr>
        <my-com>默认在组件标签之间的信息会被忽略</my-com>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值