父子组件通信
1、父子通信props
父组件控制自己的data,通过props将数据传递给子组件,子组件使用父组件传递的数据,组件要使用自定义属性,必须要在props里边进行声明,通过props声明的属性可以在this里获取到,props里的数据和data里的数据的用法一样,
为了保证数据的单向流动性,props里的数据只能使用,不能修改
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="../vue.js"></script> <style> .son { width: 100px; height: 100px; background: red; } </style> </head> <body> <div id="app"> <father></father> </div> <!-- 父组件 --> <template id="father"> <div> <button @click="toggle">toggle</button> 这里是父组件 <hr> <!-- 通过自定义属性将数据传递给子组件 --> <son :fathershow="show"></son> </div> </template> <!-- 子组件 --> <template id="son"> <div> 这里是子组件 <div v-show='fathershow' class="son"></div> </div> </template> <script> Vue.component('father', { template: '#father', data() { return{ show: true } }, methods: { toggle() { this.show =!this.show } } }) Vue.component('son', { template: '#son', props: ['fathershow'], data() { return { // show: false, } }, mounted() { console.log(this) } }) new Vue({}).$mount('#app') /* 子组件有一个div 父组件控制div的显示隐藏 父组件控制自己的data数据,然后通过props 将数据传递给子组件,子组件使用父组件传递的数据 组件要使用自定义属性必须通过props声明,通过props声明的数据可以在this里获取到 props里的数据和data里的数据用法一样 props里的数据为了保证数据的单项流动 只能使用不能修改 */ </script>