vue 中的 v-model 雙向數(shù)據(jù)綁定 實(shí)現(xiàn)原理,實(shí)現(xiàn)v-model 綁定組件

1. input 的 v-model 語法糖

首先我們需要了解v-model的原理

<template>
  <div id="test">
    ## 使用v-model 將input 的值與official綁定,實(shí)現(xiàn)了雙向數(shù)據(jù)綁定
    <input type="text" v-model="official" />

    ## 下面是v-model的原理,基于 v-bind 和 v-on 封裝的語法糖,$event.target獲取事件源,實(shí)現(xiàn)了雙向數(shù)據(jù)
    <input type="text" v-bind="custom" v-on:input="custom = $event.target.value" />
  </div>
</template>
<script>
export default {
  data() {
    return {
      official: "",
      custom: ""
    };
  }
};
</script>
2.v-model綁定自定義組件

有時候我要需要暴露出組件內(nèi)的值,使用v-model是最簡易的方法

一個組件上的 v-model 默認(rèn)會利用名為 value 的 prop 和名為 input 的事件,但是像單選框、復(fù)選框等類型的輸入控件可能會將 value 特性用于不同的目的。model 選項可以用來避免這樣的沖突
關(guān)于Prop可以查看這篇文章 http://www.itdecent.cn/p/67f2de4f47bf

## 子組件內(nèi)
<template>
  <div>
    <el-input v-model="input" @input="search" placeholder="請輸入內(nèi)容"></el-input> //綁定 input 事件 checked 和 
  </div>
</template>

<script>
export default {
  name:"searchInput",
  data() {
    return {input: ""}},
    model: {
      prop: "value",
      event: "change"
    },
    props: {
      value: { //value 和 model內(nèi)prop的值一致
        type: String,
        default: ""
      }
    },
    methods: {
      search(event) {
        this.$emit('change',event) //事件名和model內(nèi)event的值一致
      }
    }
};
</script>

##父組件內(nèi)
<search-input v-model="getValue"><search-input> //getValue的值將會傳入子組件名為 value的 prop

【有收獲請點(diǎn)個贊哦~~】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • v-model是什么? v-model是vue給我們提供的一個內(nèi)置指令(多用于表單組件的“雙向數(shù)據(jù)綁定”),而內(nèi)置...
    FTD止水閱讀 3,644評論 0 0
  • 什么是組件? 組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝...
    youins閱讀 9,709評論 0 13
  • 主要還是自己看的,所有內(nèi)容來自官方文檔。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,555評論 0 25
  • v-model本質(zhì)是什么?如何在我們寫的自定義組件的使用v-model? 1、本質(zhì) 首先我們來看看v-model是...
    ComfyUI閱讀 2,513評論 0 10
  • js簡介: js是現(xiàn)代web前端開發(fā)的工具是一種腳本語言,現(xiàn)在絕代大多數(shù)HTML頁面都使用了js腳本。HTML定義...
    asdjtr456閱讀 263評論 0 1

友情鏈接更多精彩內(nèi)容