位置:首页 > web前端 > vue

vue自定义组件使用v-model实现双向数据绑定

dearweb 发布:2021-08-08 18:18:11阅读:

默认情况下,组件上的v-model使用modelValue 作为props和update:modelValue作为事件。我们通过向v-model传递参数来修改这些名称

父组件代码

在本例子中,子组件将需要一个foo props并发出update:foo要同步的事件:

<template>
  <HelloWorld  @submit="doLogin" :foo="bar"></HelloWorld>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data(){
    return{
      bar:'',
    }
  },
  methods: {
    doLogin(e){
      console.log('--',e)
    }
  },
}
</script>

<style>
</style>

子组件代码

<template>
  <div class="hello">
    <h2>登陆组件</h2>
    <input type="text" v-model="username">
    <input type="text" v-model="password">
    <button @click="doLogin">执行登陆</button>
    <div>
      <input type="text" placeholder="请输入内容" :value="foo" @input="$emit('update:foo',$event.target.value)">  <!--foo 与props接收的名字一样-->
    </div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    foo:String
  },
  data(){
    return {

    }
  },
  methods: {

  },
}
</script>
<style scoped>

</style>
上面就是vue自定义组件使用v-model实现双向数据绑定的基本方法。
24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看