<input v-model="searchText">

 等价于

<input
  v-bind:value="searchText"
  v-on:input="searchText = $event.target.value"
>

下面直接举例

父组件:

<template>
<div>
    <basetest v-model="textvalue">
        <!--插槽可以放任何模板代码,甚至是组件(不能访问子组件数据)-->
        我是default插槽{{msg}}

        <!--具名插槽-->
        <template v-slot:head>
            <div>我是head插槽</div>
        </template>
    </basetest>
    {{textvalue}}
</div>
</template>

<script>
import basetest from './basetest';
export default {
    components:{
        basetest: basetest
    },
    data(){
        return {
            textvalue: '',
            msg: '333'
        }
    }
}
</script>

子组件:

<template>
    <div>
        <div><input type="text" :value="value" @input="myfunc"></div>
        <label>
            <slot>没有提供内容的时候显示</slot>
        </label>
        <span>
            <slot name="head"></slot>
        </span>
        <button @click="btnFun">取我的值</button>
    </div>
</template>

<script>
export default {
    model:{
        prop: 'value',
        event: 'testFunc'
    },
   props: {
       value: ''
   },
   methods:{
       myfunc(e){
           this.$emit('testFunc', e.target.value)
       },
       btnFun(){
           this.$emit('testFunc', 'yyyyyy')
       }
   }
}
</script>

只要触发了testFunc方法,都能改变父组件textvalue的值

 

 posted on 2020-10-30 09:43  一个大柚子~  阅读(113)  评论(0编辑  收藏  举报