最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文秒懂Vue3的v-model

 更新時(shí)間:2023年02月07日 15:10:12   作者:米西呀  
v-model 是 Vue 內(nèi)置的指令作為屬性接收一個(gè)變量(不能是常量)綁定到普通組件和自定義組件中,本文給大家介紹Vue3的v-model示例代碼,感興趣的朋友跟隨小編一起看看吧

1:什么是 v-model

v-model 是 Vue 內(nèi)置的指令
作為屬性接收一個(gè)變量(不能是常量)綁定到普通組件和自定義組件中

// 作為普通組件的屬性, 只有作為表單內(nèi)的元素屬性時(shí)才會(huì)生效 如:  input  、radio 、checkbox
<template>
	<input v-model='value' />
</template>
// 作為自定義組件的屬性
<template>
	<son-component v-model='value'></son-component>
</template>

v-model 同時(shí)做了兩件事情:屬性綁定和自定義事件綁定

// 內(nèi)置組件
<template>
	<input  type='text' v-model='value' /> 
	// 相當(dāng)于
	<input type='text'  :value='value' @input='value = $event.target.value'  />
</template>
// 自定義子組件
<template>
	<son-component v-model='value'></son-component>
	// 相當(dāng)于
	<son-component :modelValue='value' @update:modelValue='value = $event'></son-component>
<template>

v-model 綁定在自定義組件上時(shí),我們需要手動(dòng)去接收

// 自定義組件
export default{ 
	props: ['modelValue'], // 默認(rèn)名稱為 modelValue
	emits: ['update:modelValue'] // Vue3 新增 emits, 用于接收父組件傳遞的自定義事件
}

2:v-model 的擴(kuò)展

1:自定義名稱

v-model 默認(rèn)綁定的屬性名為:modelValue
v-model 默認(rèn)綁定的事件名為:update:modelValue

// 所以我們需要使用 modelValue 和 update:modelValue 來(lái)接收
export default {
	props: ['modelValue'],
	emits: ['update:modelValue']
}

我們可以自定義 v-model 綁定的名稱

// 父組件
<template>
	<son-component v-model:msg='msg'></son-component> // 使用 v-model:name 來(lái)自定義名稱
</template>
// 子組件
export default {
	props: ['msg'],
	emits: ['update:msg']
}

注意:以上是 Vue3 中接收 v-model 的方法, Vue2 需要使用 model 來(lái)接收

2:內(nèi)置修飾符

v-model 的修飾符能夠?qū)壎ǖ臄?shù)據(jù)做特定處理
Vue 中有內(nèi)置的修飾符,如:.number 、.trim 、.lazy
v-model.number : v-model 綁定在表單組件中不會(huì)出現(xiàn)數(shù)值類型,numer 可以將綁定的字符串轉(zhuǎn)換為數(shù)值
v-model.trim : 去掉綁定數(shù)據(jù)左右兩側(cè)的空格
v-model.lazy : 表單組件綁定時(shí)生效,從原來(lái)綁定的 input 高頻率觸發(fā)事件改為 blur 低頻率觸發(fā)事件來(lái)提高性能

<template>
	<input type='text' v-model.number='value' /> // 將輸入的 string 類型轉(zhuǎn)換為 number 類型
	input 本身不管輸入的是數(shù)字還是單詞等都是 string 類型
</template>

3:自定義修飾符

Vue3 中可以通過(guò) v-model.name 自定義修飾符
自定義的修飾符需要在子組件中用 props 接收 modelModifiers 對(duì)象,這個(gè)對(duì)象下面會(huì)有自定義屬性,值為 true

// 沒(méi)有重命名v-model,僅添加自定義修飾符
<template>
	<son-component  v-model.a='msg' />
</template>
export default {
	props:['modelValue', 'modelModifiers'],
	emits: ['update:modelValue'],
	created() {
		console.log(this.modelModifiers.a) // 值為 true
	}
}

如果自定義了 v-model 的名稱,那么 modelModifiers 要改為 name + Modifiers

// 重命名 v-model ,并且添加自定義修飾符
<template>
	<son-component v-model:msg.a='msg' />
</template>
export default {
	props:['msg', 'msgModifiers'],
	emits: ['update:msg'],
	created() {
		console.log(this.msgModifiers.a) // 值為 true
	}
}

注意:Vue3 中取消了 v-bind 中的 .sync 修飾符

總結(jié)

1:v-model 作為指令可以綁定在內(nèi)置組件和自定義組件上
2:相當(dāng)于綁定了 :modelValue 和 @update:modelValue ,需要在子組件中接收
3:v-model:name 重命名
4:v-modle.name 自定義修飾符,使用 props 的 Modifiers 接收

到此這篇關(guān)于一文秒懂認(rèn)識(shí)Vue3的v-model的文章就介紹到這了,更多相關(guān)Vue3的v-model內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3不支持Filters過(guò)濾器的問(wèn)題

    Vue3不支持Filters過(guò)濾器的問(wèn)題

    這篇文章主要介紹了Vue3不支持Filters過(guò)濾器的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • fetch網(wǎng)絡(luò)請(qǐng)求封裝示例詳解

    fetch網(wǎng)絡(luò)請(qǐng)求封裝示例詳解

    這篇文章主要介紹了fetch網(wǎng)絡(luò)請(qǐng)求封裝的示例內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • laravel5.4+vue+element簡(jiǎn)單搭建的示例代碼

    laravel5.4+vue+element簡(jiǎn)單搭建的示例代碼

    本篇文章主要介紹了laravel5.4+vue+element簡(jiǎn)單搭建的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • vue.js全局組件和局部組件示例代碼

    vue.js全局組件和局部組件示例代碼

    組件是Vue.js的最核心的功能,所謂的組件化就是把頁(yè)面拆分成多個(gè)組件,每個(gè)組件單獨(dú)使用CSS,JS,模板,圖片等資源進(jìn)行開(kāi)發(fā)與維護(hù),然后在制作網(wǎng)頁(yè)的時(shí)候根據(jù)需要調(diào)用相關(guān)的組件,這篇文章主要給大家介紹了關(guān)于vue.js全局組件和局部組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue-admin-template?報(bào)Uncaught?(in?promise)?error問(wèn)題及解決

    Vue-admin-template?報(bào)Uncaught?(in?promise)?error問(wèn)題及解決

    這篇文章主要介紹了Vue-admin-template?報(bào)Uncaught?(in?promise)?error問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue使用xlsx庫(kù)和xlsx-style庫(kù)導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬

    vue使用xlsx庫(kù)和xlsx-style庫(kù)導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬

    xlsx是由SheetJS開(kāi)發(fā)的一個(gè)處理excel文件的npm庫(kù),適用于前端開(kāi)發(fā)者實(shí)現(xiàn)導(dǎo)入導(dǎo)出excel文件的經(jīng)典需求,這篇文章主要介紹了vue使用xlsx庫(kù)和xlsx-style庫(kù)導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬,需要的朋友可以參考下
    2023-11-11
  • vue上傳圖片文件的多種實(shí)現(xiàn)方法

    vue上傳圖片文件的多種實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于vue上傳圖片文件的相關(guān)資料,介紹了利用原始input標(biāo)簽form表單上傳、elementui自帶的el-upload上傳以及elementui實(shí)現(xiàn)一次性上傳多張圖片等方法,需要的朋友可以參考下
    2021-05-05
  • Vue中key的原理以及diff算法詳解

    Vue中key的原理以及diff算法詳解

    這篇文章主要介紹了Vue中key的原理以及diff算法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue3?響應(yīng)式系統(tǒng)實(shí)現(xiàn)?computed

    Vue3?響應(yīng)式系統(tǒng)實(shí)現(xiàn)?computed

    這篇文章主要介紹了?Vue3?響應(yīng)式系統(tǒng)實(shí)現(xiàn)?computed,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-06-06
  • vue如何通過(guò)日期篩選數(shù)據(jù)

    vue如何通過(guò)日期篩選數(shù)據(jù)

    這篇文章主要介紹了vue如何通過(guò)日期篩選數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論

双流县| 锡林郭勒盟| 沅江市| 青阳县| 靖江市| 池州市| 宁陕县| 冀州市| 西乌| 磐石市| 于都县| 桂平市| 西充县| 册亨县| 柞水县| 镇远县| 岑巩县| 古丈县| 福清市| 嘉荫县| 定襄县| 若尔盖县| 三亚市| 乐平市| 缙云县| 晋州市| 绿春县| 蒙城县| 武山县| 武胜县| 长治县| 普格县| 青冈县| 绵竹市| 佳木斯市| 平凉市| 郎溪县| 来宾市| 阜平县| 中牟县| 崇信县|