父子组件传值
props
// 父组件<div id="parent"><child :show="show"></child></div><script>// 定义全局组件Vue.component('child', {props: [show],template: `<div class="child"><span>{{show}}</span></div>`})const app = new Vue({data: {show: false, // 子组件的状态},})</script>
子组件改父组件的值
事件传递
// 父组件<div id="parent"><child :show="show" @change="show=$event"></child></div><script>// 定义全局组件Vue.component('child', {props: [show],template: `<div class="child" v-if="show"><span @click="$emit('change',false)">{{show}}</span></div>`})const app = new Vue({data: {show: false, // 子组件的状态},})</script>
使用sync
// 父组件<div id="parent"><child :show.sync="show"></child></div><script>// 定义全局组件Vue.component('child', {props: [show],template: `<div class="child" v-if="show"><span @click="$emit('update:show',false)">{{show}}</span></div>`})const app = new Vue({data: {show: false, // 子组件的状态},})</script>
使用了sync的修饰符,父级就不需要写方法的传递,不需要写事件的处理
