前端学习基地

vue3在组件上使用自定义v-model

2021-04-12  本文已影响0人  羊驼626

父组件使用v-model:xxx传递prop,子组件使用$emit('update:xxx', argu)返回给父组件值(xxx为组件传值的属性名;argu为子组件返回给父组件的值)

1.父组件

我们使用title作为prop传递给子组件的值; 我们使用v-model:title,给v-model传递一个title的参数,来让子组件可以接收到属性名为title的prop;

<template>
  <Model v-model:title="title"></Model>
</template>

<script>
import { defineComponent, ref } from "vue";
import Model from ''xxx/Model.vue"

export default defineComponent({
  components: {
    Model
  },
  setup(){
    const title = ref('传递给子组件的值')
    return { title }
  }
}
</script>

2.子组件Model.vue

子组件使用$emit('update:title', argu)事件,返回给父组件argu值,以更改title

<template>
  <div >
    <button @click="$emit('update:title', '子组件传递给父组件的值')">子组件点击</button>
    <div>{{title}}</div>
  </div>
</template>

<script>
import { defineComponent } from "vue";

export default defineComponent({
  props: {
    title: {
      type: String,
      required: true
    }
  }
}
</script>
上一篇下一篇

猜你喜欢

热点阅读