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

vue?v-model的詳細講解(推薦!)

 更新時間:2022年04月22日 11:41:34   作者:zayyo  
vue中經(jīng)常使用到和這類表單元素,vue對于這些元素的數(shù)據(jù)綁定和我們以前經(jīng)常用的jQuery有些區(qū)別,下面這篇文章主要給大家介紹了關(guān)于vue?v-model的相關(guān)資料,需要的朋友可以參考下

v-model的基本使用

表單提交是開發(fā)中非常常見的功能,也是和用戶交互的重要手段:

比如用戶在登錄、注冊時需要提交賬號密碼;

比如用戶在檢索、創(chuàng)建、更新信息時,需要提交一些數(shù)據(jù);

這些都要求我們可以在代碼邏輯中獲取到用戶提交的數(shù)據(jù),我們通常會使用v-model指令來完成:

v-model指令可以在表單 input、textarea以及select元素上創(chuàng)建雙向數(shù)據(jù)綁定;

它會根據(jù)控件類型自動選取正確的方法來更新元素;

盡管有些神奇,但 v-model 本質(zhì)上不過是語法糖,它負責監(jiān)聽用戶的輸入事件來更新數(shù)據(jù),并在某種極端場景

下進行一些特殊處理;

v-model的原理

官方有說到,v-model的原理其實是背后有兩個操作:

v-bind綁定value屬性的值;

v-on綁定input事件監(jiān)聽到函數(shù)中,函數(shù)會獲取最新的值賦值到綁定的屬性中;

v-model綁定textarea

我們再來綁定一下其他的表單類型:textarea、checkbox、radio、select

我們來看一下綁定textarea:

v-model綁定checkbox

我們來看一下v-model綁定checkbox:單個勾選框和多個勾選框

單個勾選框:

v-model即為布爾值。

此時input的value并不影響v-model的值。

多個復選框:

當是多個復選框時,因為可以選中多個,所以對應(yīng)的data中屬性是一個數(shù)組。

當選中某一個時,就會將input的value添加到數(shù)組中。

v-model綁定radio

v-model綁定radio,用于選擇其中一項;

v-model綁定select

和checkbox一樣,select也分單選和多選兩種情況。

單選:只能選中一個值

v-model綁定的是一個值;

當我們選中option中的一個時,會將它對應(yīng)的value賦值到fruit中;

多選:可以選中多個值

v-model綁定的是一個數(shù)組;

當選中多個值時,就會將選中的option對應(yīng)的value添加到數(shù)組fruit中;

v-model的值綁定

目前我們在前面的案例中大部分的值都是在template中固定好的:

比如gender的兩個輸入框值male、female;

比如hobbies的三個輸入框值basketball、football、tennis;

在真實開發(fā)中,我們的數(shù)據(jù)可能是來自服務(wù)器的,那么我們就可以先將值請求下來,綁定到data返回的對象中,再通過v-bind來進行值的綁定,這個過程就是值綁定。

這里不再給出具體的做法,因為還是v-bind的使用過程。

v-model修飾符 - lazy

lazy修飾符是什么作用呢?

默認情況下,v-model在進行雙向綁定時,綁定的是input事件,那么會在每次內(nèi)容輸入后就將最新的值和綁定的屬性進行同步;

如果我們在v-model后跟上lazy修飾符,那么會將綁定的事件切換為 change 事件,只有在提交時(比如回車)

才會觸發(fā)

v-model修飾符 - number

我們先來看一下v-model綁定后的值是什么類型的:

message總是string類型,即使在我們設(shè)置type為number也是string類型;

如果我們希望轉(zhuǎn)換為數(shù)字類型,那么可以使用 .number 修飾符:

另外,在我們進行邏輯判斷時,如果是一個string類型,在可以轉(zhuǎn)化的情況下會進行隱式轉(zhuǎn)換的:

下面的score在進行判斷的過程中會進行隱式轉(zhuǎn)化的

v-model修飾符 - trim

如果要自動過濾用戶輸入的守衛(wèi)空白字符,可以給v-model添加 trim 修飾符

附:父子組件v-model綁定的參數(shù)進行通信

實際上v-model 只是語法糖而已。

<input v-model="inputValue" />
<input v-bind:value="inputValue" v-on:input="inputValue= $event.target.value" />

父組件

<template>
 <div id="demo">
  <test-model v-model="inputValue"></test-model>
  <span>{{inputValue}}</span>
</div>
</template>
<script>
    import testModel from 'src/components/testModel'
    export default {
      data(){
            return{
                 inputValue: "inputValue"
            }
        },
        components: {
            testModel,
        }
    }
</script>

<style lang="scss" scoped>
</style>

子組件

<template>
<span>
      <input
        ref="input"
        :value="value"
        @input="$emit('ababab', $event.target.value)"
      >
    </span>
</template>
<script>
    export default {
        data(){
            return{
            }
        },
        props: ["value"],
        model: {
            prop: 'value',
            //這個事件名可以隨意寫,它實際上是規(guī)定了子組件要更新父組件值需要注冊的方法
            event: 'ababab'
        }
    }
</script>
<style lang="scss" scoped>
</style>

原理:

1.展示:父組件v-model,子組件接收一個props值value,將它展示到子組件自己的input上。

2.改變:當子組件自身發(fā)生改變時,觸發(fā)自身的input方法,然后觸發(fā)父組件的事件方法,改變父組件的value,進而改變接收的props,實現(xiàn)自身展示的改變

例子中使用了model,官網(wǎng)是這樣說的,實際上是為了單選框,復選框按鈕等情況的時候,他們的值并不是value,而是checked,這種情況下,就需要寫這個。

model: {
    prop: 'checked',
    event: 'change'
  },

總結(jié) 

到此這篇關(guān)于vue v-model的詳細講解的文章就介紹到這了,更多相關(guān)vue v-model講解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解vue中v-on事件監(jiān)聽指令的基本用法

    詳解vue中v-on事件監(jiān)聽指令的基本用法

    這篇文章主要介紹了詳解vue中v-on事件監(jiān)聽指令的基本用法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • vue+freemarker中遇到的坑及解決

    vue+freemarker中遇到的坑及解決

    這篇文章主要介紹了vue+freemarker中遇到的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue+vant實現(xiàn)購物車全選和反選功能

    vue+vant實現(xiàn)購物車全選和反選功能

    這篇文章主要為大家詳細介紹了vue+vant實現(xiàn)購物車全選和反選功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • vue2 router 動態(tài)傳參,多個參數(shù)的實例

    vue2 router 動態(tài)傳參,多個參數(shù)的實例

    下面小編就為大家?guī)硪黄獀ue2 router 動態(tài)傳參,多個參數(shù)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 淺談Vue使用Cascader級聯(lián)選擇器數(shù)據(jù)回顯中的坑

    淺談Vue使用Cascader級聯(lián)選擇器數(shù)據(jù)回顯中的坑

    這篇文章主要介紹了淺談Vue使用Cascader級聯(lián)選擇器數(shù)據(jù)回顯中的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue.js通過路由實現(xiàn)經(jīng)典的三欄布局實例代碼

    vue.js通過路由實現(xiàn)經(jīng)典的三欄布局實例代碼

    本文通過實例代碼給大家介紹了vue.js通過路由實現(xiàn)經(jīng)典的三欄布局,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • antd form表單數(shù)據(jù)回顯操作

    antd form表單數(shù)據(jù)回顯操作

    這篇文章主要介紹了antd form表單數(shù)據(jù)回顯操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Element MessageBox彈框的具體使用

    Element MessageBox彈框的具體使用

    這篇文章主要介紹了Element MessageBox彈框的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • vue antd Form表單的使用及說明

    vue antd Form表單的使用及說明

    這篇文章主要介紹了vue antd Form表單的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue實現(xiàn)鍵盤輸入支付密碼功能

    vue實現(xiàn)鍵盤輸入支付密碼功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)鍵盤輸入支付密碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論

金溪县| 左权县| 宝兴县| 新疆| 玛沁县| 灵武市| 长顺县| 肥西县| 铁岭市| 石屏县| 阿坝县| 平阴县| 伊宁市| 新建县| 兴业县| 社会| 治县。| 黔西| 安达市| 元谋县| 息烽县| 治多县| 桃园县| 阿拉善盟| 资兴市| 昌都县| 德安县| 东源县| 桐柏县| 玉山县| 邵武市| 天镇县| 玉屏| 灌阳县| 安阳县| 万盛区| 武鸣县| 新河县| 区。| 盐边县| 黄大仙区|