Vue父子传值这样理解就对了

每一个Vue实例都是一个根组件,基于根组件,我们才能建立子组件,即便子组件是定义在全局里,可是使用的时候组件标签还是要加在Vue实例管辖的区域。

所以不管是全局组件和局部组件,都是子组件,而且在Vue中,组件只有父子组件和非父子组件之分,

今天跟大家聊聊如何理解父子传值这一概念。

1.父子传值,首先父组件准备数据。

const vm = new Vue({
   el: '#app',
   data: {
      msg: '父组件的值--hello vue'
   }
})

2.建立子组件,这里设置全局组件

 Vue.component('demo',{
    template:`
    <h2>{{hello}}</h2>
    `
  })

demo就是我们的组件名,template后面跟的是模板字符串(ES6语法),放的是组件内容。

3.子组件标签写在div里,给组件标签动态绑定属性,属性值就是父组件data里面的参数值,(这个是重点),父传子,父组件只认组件标签的动态属性值,所以,这两个值务必保持一致

  <div id="app">
     <demo :hello='msg'></demo>
   </div>

4.子组件最后要在自己结构中,加上props这个属性,后面是一个数组,里面放的是自己动态绑定的属性名,属性名,子组件用的是属性名,和父组件要区分开。

  Vue.component('demo',{
    template:`
    <h2>{{hello}}</h2>
    `,
    props:['hello']
  })

看效果

 

完整代码献上:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
</head>
<body>
   <div id="app">
     <demo :hello='msg'></demo>
   </div>

<script src="./vue.js"></script>
<script>
  Vue.component('demo',{
    template:`
    <h2>{{hello}}</h2>
    `,
    props:['hello']
  })
const vm = new Vue({
   el: '#app',
   data: {
     msg: '父组件的值--hello vue'
   }
})
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值