1.父组件向子组件共享数据
父组件向子组件共享数据需要使用props自定义属性。示例代码如下:
// 父组件 <Left :msg="message" :userinfo="user"></Left> <script> import Left from '@/components/Left.vue' export default { data(){ return{ message:'hello', user:'flyer', } }, components:{ Left, } } </script>
// 子组件 <template> <div> <p>父组件传递过来的msg值{{msg}}</p> <p>父组件传递过来的user值{{userinfo}}</p> </div> </template> <script> export default { props:['msg','userinfo'] } </script>
2.子组件向父组件共享数据
子组件向父组件共享数据使用$emit自定义事件。示例代码如下:
//子组件 <template> <div> <p>{{count}}</p> <button @click="add">+1</button> </div> </template> <script> export default { data(){ return{ count:0 } }, methods:{ add(){ this.count += 1; this.$emit('numchange',this.count); } } } </script>
// 父组件 <template> <div> <h1>app组件</h1> <p>{{countFromSon}}</p> <hr> <Right @numchange="getNewCount"></Right> </div> </template> <script> import Right from '@/components/Right.vue' export default { data(){ return{ countFromSon:0 } }, methods:{ getNewCount(val){ this.countFromSon = val; } }, components:{ Right } } </script>