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

vue中v-model雙向綁定input輸入框問(wèn)題

 更新時(shí)間:2023年04月23日 08:45:50   作者:qq_52822043  
這篇文章主要介紹了vue中v-model雙向綁定input輸入框問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue v-model雙向綁定input輸入框

 <!-- 輸入框 -->
    <input type="number" class="form-control form-control-sm ipt-num" v-model.number.lazy="number" />

v-model雙向綁定數(shù)據(jù)number,用戶在輸入框中內(nèi)容之后,判斷用戶輸入的內(nèi)容,然后判斷內(nèi)容是否為正整數(shù),不是的話要進(jìn)行轉(zhuǎn)換。

  • 先把輸入的值轉(zhuǎn)換為整數(shù)
  • 如果輸入的值是字符串或者是 <1 的數(shù)字,則將輸入框內(nèi)容賦值為1
  • 如果輸入的值是帶小數(shù)的數(shù)字,則將小數(shù)點(diǎn)之后的值去掉,只保留整數(shù),并將其賦值給輸入框

這樣的話,當(dāng)用戶輸入小數(shù)或者負(fù)數(shù)的時(shí)候,輸入框顯示的還是輸入的內(nèi)容,沒(méi)有轉(zhuǎn)換為我們想要的值。

但是vue中的number已經(jīng)自動(dòng)賦值為我們想要的數(shù)字了。

 讓輸入框自動(dòng)轉(zhuǎn)換為我們想要的數(shù)值,解決方案:

在input組件中增加事件@blur="onBlur",當(dāng)輸入框失去焦點(diǎn)時(shí),把number賦值為輸入框中的值。

<!-- 輸入框 -->
    <input type="number" class="form-control form-control-sm ipt-num" v-model.number.lazy="number" @blur="onBlur"/>
 
methods: {
    onBlur(e) {
      e.target.value = this.number
    }
}

vue v-model雙向綁定原理kalrry

v-model實(shí)現(xiàn)雙向綁定的語(yǔ)法糖,常用于表單與組件之間的數(shù)據(jù)雙向綁定.

表單實(shí)現(xiàn)雙向綁定

1. 原理

分兩步驟

  • v-bind綁定一個(gè)value屬性
  • v-on指令給當(dāng)前元素綁定input事件

可看出v-model綁定在表單上時(shí),v-model其實(shí)就是v-bind綁定value和v-on監(jiān)聽(tīng)input事件的結(jié)合體

v-model = v-bind:value + v-on:input

2. 實(shí)現(xiàn)

用v-bind:value + v-on:input來(lái)模擬實(shí)現(xiàn)v-model

<input type="text" :value="username" @input="username = $event.target.value" />

例子解釋:

通過(guò) v-bind:value 綁定 username 變量,每次輸入內(nèi)容的時(shí)候觸發(fā)input事件

通過(guò)事件對(duì)象參數(shù) event.target.value 獲得輸入的內(nèi)容,并且把這個(gè)內(nèi)容賦值給username

此時(shí)更改username時(shí)input輸入框會(huì)變化,更改input輸入框時(shí)username變量會(huì)變,從而實(shí)現(xiàn)了v-model的雙向綁定功能

組件上的雙向綁定

1. 原理

v-model綁定在組件上的時(shí)候做了以下步驟

  • 在父組件內(nèi)給子組件標(biāo)簽添加 v-model ,其實(shí)就是給子組件綁定了 value 屬性
  • 子組件內(nèi)使用 prop 創(chuàng)建 創(chuàng)建 value 屬性可以拿到父組件傳遞下來(lái)的值,名字必須是 value。
  • 子組件內(nèi)部更改 value 的時(shí)候,必須通過(guò) $emit 派發(fā)一個(gè) input 事件,并攜最新的值
  • v-model 會(huì)自動(dòng)監(jiān)聽(tīng) input 事件,把接收到的最新的值同步賦值到 v-model 綁定的變量上

2. 實(shí)現(xiàn)

父組件操作

<子組件標(biāo)簽 v-model="父組件定義的變量值 />

子組件操作

<template>
?? ?<p>子組件庫(kù)存:{{ value }}</p>
?? ?<button @click="addFun">增加1</button>
</template>
<script>
?? ?export default {
?? ??? ?props:{
?? ??? ??? ?value:{
?? ??? ??? ??? ?type: Number,
?? ??? ??? ??? ?default:0
?? ??? ??? ?}
?? ??? ?},
?? ??? ?methods:{
?? ??? ??? ?addFun() {
?? ??? ??? ??? ?this.$emit('input', this.value + 1)
?? ??? ??? ?}
?? ??? ?}
?? ?}
</script>
// 這樣后每次點(diǎn)擊按鈕的時(shí)候,庫(kù)存就會(huì)加1,并且把變更后的值傳遞給父組件
// 父組件 v-model 綁定的變量就會(huì)改變

3. 實(shí)例

父組件

//v-model綁定值
<el-form-item label="員工頭像">
? ? ? ? <!-- 放置上傳圖片 -->
? ? ? ? <UploadImg v-model="userInfo.staffPhoto" />
</el-form-item>
//uploadimg: 自定義的組件, v-model:雙向綁定

子組件(圖片上傳組件)

//1.定義props value來(lái)接收父組件傳入的圖片地址
?props: {
? ? // 父組件傳遞過(guò)來(lái)的v-model對(duì)應(yīng)的值
? ? value: { type: String, default: '' }
? },
//2.直接用value來(lái)顯示圖片
<img :src="value" />
//3.在子組件圖片上傳成功之后,this.$emit(‘input', 新地址), 拋給父組件,達(dá)到更新父組件中v-model綁定數(shù)據(jù)項(xiàng)
? ?const imageUrl = `https://${data.Location}`
? ?this.$emit('input', imageUrl)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中的Router基本配置命令實(shí)例詳解

    vue中的Router基本配置命令實(shí)例詳解

    Vue的Router是一個(gè)用于實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)和路由管理的插件,它可以幫助我們根據(jù)不同的URL請(qǐng)求加載不同的組件,以及實(shí)現(xiàn)前端路由功能,本文給大家介紹vue中的Router基本配置命令,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 淺談vue項(xiàng)目?jī)?yōu)化之頁(yè)面的按需加載(vue+webpack)

    淺談vue項(xiàng)目?jī)?yōu)化之頁(yè)面的按需加載(vue+webpack)

    本篇文章主要介紹了vue項(xiàng)目?jī)?yōu)化之頁(yè)面的按需加載(vue+webpack),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 深入理解Vue 的條件渲染和列表渲染

    深入理解Vue 的條件渲染和列表渲染

    本篇文章主要介紹了深入理解Vue 的條件渲染和列表渲染,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 詳解vue-router的Import異步加載模塊問(wèn)題的解決方案

    詳解vue-router的Import異步加載模塊問(wèn)題的解決方案

    這篇文章主要介紹了詳解vue-router的Import異步加載模塊問(wèn)題的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問(wèn)題

    vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問(wèn)題

    這篇文章主要介紹了vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue自定義指令實(shí)現(xiàn)一鍵復(fù)制功能

    vue自定義指令實(shí)現(xiàn)一鍵復(fù)制功能

    本文旨在記錄解決在工作中一鍵復(fù)制功能得需求,本文主要使用了Vue3+TypeScript+Ant-Design-Vue,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • vue使用element-ui tabs切換echarts解決寬度100%方式

    vue使用element-ui tabs切換echarts解決寬度100%方式

    這篇文章主要介紹了vue使用element-ui tabs切換echarts解決寬度100%方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解Vue的ref特性的使用

    詳解Vue的ref特性的使用

    這篇文章主要介紹了詳解Vue的ref特性的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 簡(jiǎn)單了解Vue + ElementUI后臺(tái)管理模板

    簡(jiǎn)單了解Vue + ElementUI后臺(tái)管理模板

    這篇文章主要介紹了簡(jiǎn)單了解Vue + ElementUI后臺(tái)管理模板,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 詳解Vue 開(kāi)發(fā)模式下跨域問(wèn)題

    詳解Vue 開(kāi)發(fā)模式下跨域問(wèn)題

    本篇文章主要介紹了Vue 開(kāi)發(fā)模式下跨域問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論

焦作市| 张家港市| 永春县| 清苑县| 贺兰县| 托克逊县| 霍林郭勒市| 海阳市| 潼南县| 清流县| 白沙| 朝阳市| 嘉善县| 金溪县| 南投县| 丹寨县| 苍溪县| 云阳县| 会昌县| 惠东县| 田林县| 瑞昌市| 天门市| 德化县| 法库县| 扶绥县| 兴国县| 会昌县| 淳化县| 绵阳市| 白水县| 龙海市| 阿坝县| 宁武县| 哈尔滨市| 运城市| 民县| 邯郸县| 兰溪市| 睢宁县| 永定县|