Vue框架——父组件给子组件传值

父组件给子组件传值基本用法

  • 组件内通过 props 接收传递过来的值

    Vue.component('small-item', {
        props: ['title', ],
        data: function() {
            return {
                msg: '子组件数据'
            }
        },
        template: '<div>{{msg + "---" + title}}</div>',
    });
    
  • 父组件通过属性将值传递给子组件

    • 传递静态数据

      <div id="app">
          <!-- 传入静态数据 -->
          <small-item title="子组件参数的值"></small-item>
      </div>
      
      Vue.component('small-item', {
          props: ['title', ],
          data: function() {
              return {
                  msg: '子组件数据'
              }
          },
          template: '<div>{{msg + "---" + title}}</div>',
      });
      
    • 传递动态数据

      <div id="app">
      	<!-- 传入动态数据 -->
          <small-item :title="con"></small-item>
      </div>
      
      Vue.component('small-item', {
          props: ['title', ],
          data: function() {
              return {
                  msg: '子组件数据'
              }
          },
          template: '<div>{{msg + "---" + title}}</div>',
      });
      // 实例化一个Vue对象,这个对象相当于是一个组件
      var vm = new Vue({
          el: '#app',
          data: {
              con: '父组件传给子组件的值'
          },
          methods: {}
      });
      

      Vue对象相当于是一个组件

  • props 属性命名规则

    • props 中使用驼峰形式,模板(html)中需要使用短横线的形式

      <small-item small-item="hello"></small-item>
      
      Vue.component('small-item', {
          props: ['smallItem', ],
          data: function() {
              return {
                  msg: '子组件数据'
              }
          },
          template: '<div>{{msg + "---" + smallItem}}</div>',
      });
      
    • 在字符串形式的模板中没有这个限制

      <small-item small-item="hello"></small-item>
      
      Vue.component('big-item', {
          props: ['bigItem', ],
          data: function() {
              return {
                  msg: 'big子组件数据'
              }
          },
          template: '<div>{{msg + "---" + bigItem}}</div>',
      });
      Vue.component('small-item', {
          props: ['smallItem', ],
          data: function() {
              return {
                  msg: '子组件数据'
              }
          },
          template: '<div>{{msg + "---" + smallItem}}<big-item bigItem="nihao"></big-item></div>',
      });
      
  • props 属性值类型

    • 字符串 String

      <small-item small-item="hello"></small-item>
      
    • 数值 Number

      <small-item :small-item="12"></small-item>
      

      需要 bind 绑定

    • 布尔值 Boolean

      <small-item small-item="true"></small-item>
      
    • 数组 Array

      <small-item small-item="['apple', 'orange', 'banana']"></small-item>
      
    • 对象 Object

      <small-item small-item="{name: 'zhangsan', age: '18'}"></small-item>
      
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值