.sync 修饰符

<template>
  <div id="app">
    <div class="details">
      <myComponent
        :show.sync="valueChild"
        style="padding: 30px 20px 30px 5px;border:1px solid #ddd;margin-bottom: 10px;"
      ></myComponent>
      <button @click="changeValue">切换</button>
    </div>
  </div>
</template>
<script>
import myComponent from "./components/myComponent.vue";
export default {
  name: 'App',
  components: {
    myComponent,
  },
  data() {
    return {
      valueChild: true,
      test: "123",
    }
  },
  methods: {
    changeValue() {
      this.valueChild = !this.valueChild
    }
  }
}
</script>

子组件

<template>
  <div>
    <div v-if="show">
      <p>默认初始值是{{show}},所以是显示的</p>
      <button @click.stop="closeDiv">关闭</button>
    </div>
  </div>
</template>

<script>
export default {
  props: ['show'],
  methods: {
    closeDiv() {
        console.log('sad')
      this.$emit('update:show', false); //触发 input 事件,并传入新值
    }
  }
}
</script>

<style lang="scss" scoped>
</style>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。