v-model在自定义组件应用详解

1.1.v-model的作用第一个是在普通的input输入框中做双向数据绑定。

2.v-model用在自定义组件中

v-model就是一个语法糖,让我们将数据的绑定和事件的调用都省去,在自定义组件中v-model可以分解为一个绑定,用来将message的值传给子组件,子组件接收prop,同时,在利用input事件将值通过$emit,将值再传递给父组件,直接赋值给message,这样就形成了简化版的父子组件传值,也是自定义组件的一个双向数据绑定。


  <div id='app'>
   <items v-model='message'></items>
   <div>
    <input v-model:value='message'></input>   
   </div>
  </div>
    Vue.component('items',{
      template:`<div >这是item-a的组件  
                  <input :value='value' @input='update' ></input>    
                </div>`,
      props:['value'], //名字是任意一个,用来接收prop
      data(){
        return{
        }
      },
      methods: {
        update(e){
          this.$emit('input', e.target.value)
        }

      }
    })
    var vm=new Vue({
      el:'#app',
      data:{
        message:''
      },
      methods:{},
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:父组件通过ref定义子组件实例,通过调用实例获得子组件的数据和方法。\[1\]引用\[2\]:东风vue3父组件调用子组件的方法是通过expose和ref来实现的,我们可以通过expose来控制父组件可以访问子组件那些的方法和对象。\[2\]引用\[3\]:选项式API中,父组件可以通过ref命令来获取子组件的实例,并调用子组件的方法。\[3\] 在Vue3中,父组件可以通过v-model绑定子组件,并接收子组件的值。首先,在父组件中使用ref命令定义子组件的实例,然后通过v-model绑定子组件的值。在子组件中,使用expose命令暴露需要传递给父组件的值。父组件可以通过访问子组件的实例来获取子组件的值。具体实现如下: 父组件app.vue: ```html <template> <div class="itxst"> <child ref="childComp" v-model="childValue"></child> <button @click="onClick">点击试一试</button> </div> </template> <script setup> import { ref } from "vue"; import child from "./child.vue"; const childComp = ref(null); const childValue = ref(""); const onClick = () => { // 获取子组件的值 let value = childComp.value.childValue; console.log(value); }; </script> ``` 子组件child.vue: ```html <template> <div class="itxst"> <input v-model="childValue" /> </div> </template> <script> import { ref, defineExpose } from "vue"; export default { name: "child", setup() { const childValue = ref(""); // 暴露需要传递给父组件的值 defineExpose({ childValue, }); return { childValue, }; }, }; </script> ``` 在父组件中,我们使用ref命令定义了子组件的实例childComp,并使用v-model绑定了childValue。在子组件中,我们使用defineExpose命令暴露了childValue,使其可以被父组件访问到。父组件可以通过childComp.value.childValue来获取子组件的值。 #### 引用[.reference_title] - *1* *2* *3* [vue3父组件调用子组件的方法](https://blog.csdn.net/weixin_42252416/article/details/128001894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值