vue自定义组件实现v-model双向绑定

Posted xbzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue自定义组件实现v-model双向绑定相关的知识,希望对你有一定的参考价值。

父级组件

<template>
  <div id="app">
    <button @click="clickme">click me</button>
    <img alt="Vue logo" src="./assets/logo.png" />
    <HelloWorld msg="Welcome to Your Vue.js App" v-model="show" />
  </div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  name: "App",
  data() {
    return {
      show: true
    };
  },
  components: {
    HelloWorld
  },
  methods: {
    clickme() {
      this.show = !this.show;
    }
  }
};
</script>

 

子组件

<template>
  <div class="hello" v-show="value">
    <h1>{{ msg }}</h1>
    <button @click="clickme">click child</button>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  props: {
    msg: String,
    value: Boolean// 获取父级组件传递的value
  },
  updated() {},
  methods: {
    clickme() {
      const newval = !this.value;
      this.$emit("input", newval); //v-model实现的是v-bind:value 和v-on:input,这句更新父级组件的value
    }
  }
};
</script>

 

以上是关于vue自定义组件实现v-model双向绑定的主要内容,如果未能解决你的问题,请参考以下文章

vue自定义组件实现v-model双向绑定

vue 自定义组件使用v-model

Vue学习Vue高级特性

vue 自定义v-model的组件 修饰符无效,需要改怎么做!

Vue组件的操作-自定义组件,动态组件,递归组件

vue 自定义组件 v-model双向绑定 父子组件同步通信