自定義元件使用v model

2021-10-23 18:01:10 字數 1580 閱讀 1741

v-model只是乙個語法糖,等於:value+@input,真正的實現靠的還是: v-bind:繫結響應式資料,觸發 input 事件並傳遞資料 (核心和重點)

"something"

>

等於"something" @:input=

"something = $event.target.value"

>

因此,對於乙個帶有 v-model 的輸入框元件,它應該:接收乙個 value prop,觸發 input 事件,並傳入新值

自定義myinput元件

"padding-top: 100px;"

>

"minu"

class

="btn"

>

-<

/button>

"text"

:value=

"currentvalue" @input=

"handleinput"

/>

"plus"

class

="btn"

>

+<

/button>

<

/div>

<

/template>

export

default},

computed:},

methods:

, minu:

function()

, plus:

function()

,}}<

/script>

"text/css"

>

.btn

<

/style>

在頁面使用

="hello"

>

'name'

>

<

/myinput>

}'othername'

>

<

/myinput>

}<

/div>

<

/template>

import myinput from

"@/components/myinput"

;export

default},

components:,

methods:

}<

/script>

<

/style>

總結:

自定義的元件內部一般包含原生的表單元件(當然非表單的元件也可以),然後給原生控制項繫結事件,捕捉到原生元件的值,利用 $emit方法,觸發input方法,元件監聽到 input事件然後把值傳入

v-model 在內部為不同的輸入元素使用不同的屬性並丟擲不同的事件:

text 和 textarea 元素使用 value 屬性和 input 事件;

checkbox 和 radio 使用 checked 屬性和 change 事件;

select 欄位將 value 作為 prop 並將 change 作為事件。

自定義元件 使用v model

最近在使用vue quill editor富文字元件 發現預設都是轉為base64然後寫在img中,這樣做會導致富文字內容體積非常龐大,然後看到某篇部落格將上傳到自己的伺服器上.配置 如下 富文字編輯上傳配置 const uploadconfig 工具欄的工具選項 預設展示全部 const tool...

vue 自定義元件使用v model

是我們常用的雙向繫結方法,如果在自定義元件中如何使用v model進行雙向繫結呢?首先我們必須要清除v model繫結的原理如下 其實v model的語法糖是這樣包裝而成的 而乙個元件上使用時則會簡化成這樣子 因此,對於乙個帶有 v model 的元件 核心用法 它應該如下 1 帶有v model的...

vue 自定義元件使用v model

v model指令其實是下面的語法糖包裝而成 在乙個元件上使用 v model 時,會簡化為 因此,對於乙個帶有v model的元件,它應該如下 利用 emit 觸發 input 事件 this.emit input value 元件1 vue.component my component prop...