日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

组件的v-model Mixin extends

發(fā)布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 组件的v-model Mixin extends 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、組件的v-model

前面我們在input中可以使用v-model來完成雙向綁定:

  • 這個時候往往會非常方便,因為v-model默認幫助我們完成了兩件事;
  • v-bind:value的數(shù)據(jù)綁定 和 @input的事件監(jiān)聽

如果我們現(xiàn)在封裝了一個組件,其他地方在使用這個組件時,是否也可以使用v-model來同時完成這兩個功能呢?

  • 也是可以的,vue也支持在組件上使用v-model;

當我們在組件上使用的時候,等價于如下的操作:

  • 我們會發(fā)現(xiàn)和input元素不同的只是屬性的名稱和事件觸發(fā)的名稱而已;

二、組件v-model的實現(xiàn)

那么,為了我們的MyInput組件可以正常的工作,這個組件內(nèi)的 <input> 必須:

  • 將其 value attribute 綁定到一個名叫 modelValue 的 prop 上;
  • 在其 input 事件被觸發(fā)時,將新的值通過自定義的 update:modelValue 事件拋出;

三、computed實現(xiàn)

我們依然希望在組件內(nèi)部按照雙向綁定的做法去完成,應(yīng)該如何操作呢?我們可以使用計算屬性的setter和getter來完成。

四、綁定多個屬性

我們現(xiàn)在通過v-model是直接綁定了一個屬性,如果我們希望綁定多個屬性呢? p也就是我們希望在一個組件上使用多個v-model是否可以實現(xiàn)呢?

  • 我們知道,默認情況下的v-model其實是綁定了 modelValue 屬性和 @update:modelValue的事件;
  • 如果我們希望綁定更多,可以給v-model傳入一個參數(shù),那么這個參數(shù)的名稱就是我們綁定屬性的名稱;

注意:這里我是綁定了兩個屬性的

v-model:title相當于做了兩件事:

  • 綁定了title屬性;
  • 監(jiān)聽了 @update:title的事件;

五、認識Mixin

目前我們是使用組件化的方式在開發(fā)整個Vue的應(yīng)用程序,但是組件和組件之間有時候會存在相同的代碼邏輯,我們希望對相同的代碼邏輯進行抽取。

在Vue2和Vue3中都支持的一種方式就是使用Mixin來完成:

  • Mixin提供了一種非常靈活的方式,來分發(fā)Vue組件中的可復用功能
  • 一個Mixin對象可以包含任何組件選項
  • 當組件使用Mixin對象時,所有Mixin對象的選項將被 混合 進入該組件本身的選項中

六、Mixin的基本使用

七、Mixin的合并規(guī)則

如果Mixin對象中的選項和組件對象中的選項發(fā)生了沖突,那么Vue會如何操作呢?
p這里分成不同的情況來進行處理;
1.情況一:如果是data函數(shù)的返回值對象

  • 返回值對象默認情況下會進行合并
  • 如果data返回值對象的屬性發(fā)生了沖突,那么會保留組件自身的數(shù)據(jù)

2.情況二:如何生命周期鉤子函數(shù)

  • 生命周期的鉤子函數(shù)會被合并到數(shù)組中,都會被調(diào)用;

3.情況三:值為對象的選項,例如 methods、components 和 directives,將被合并為同一個對象。

  • 比如都有methods選項,并且都定義了方法,那么它們都會生效;
  • 但是如果對象的key相同,那么會取組件對象的鍵值對

八、全局混入Mixin

如果組件中的某些選項,是所有的組件都需要擁有的,那么這個時候我們可以使用全局的mixin:

  • 全局的Mixin可以使用 應(yīng)用app的方法 mixin 來完成注冊;
  • 一旦注冊,那么全局混入的選項將會影響每一個組件

九、extends

另外一個類似于Mixin的方式是通過extends屬性: 允許聲明擴展另外一個組件,類似于Mixins;
在開發(fā)中extends用的非常少,在Vue2中比較推薦大家使用Mixin,而在Vue3中推薦使用Composition API

總結(jié)

以上是生活随笔為你收集整理的组件的v-model Mixin extends的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。