欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue數(shù)據(jù)雙向綁定的實(shí)現(xiàn)方式講解

 更新時(shí)間:2022年08月29日 16:08:35   作者:丘比特懲罰陸  
Vue數(shù)據(jù)雙向綁定原理:Vue內(nèi)部通過Object.defineProperty方法屬性攔截的方式,把data對象里每個數(shù)據(jù)的讀寫轉(zhuǎn)化成getter/setter,當(dāng)數(shù)據(jù)變化時(shí)通知視圖更新

前言

在web開發(fā)應(yīng)用中,很多項(xiàng)目都會用到表格一列的組件進(jìn)行數(shù)據(jù)的傳輸、獲取和提交,在開發(fā)使用中,表格類組件數(shù)據(jù)的傳輸,我們一般可以使用v-model將輸入的數(shù)據(jù)同步到data屬性中,這個指令可以為不同的輸入元素使用不同的屬性,這個指令一般在form表單中的input等等元素上面來創(chuàng)建雙向的數(shù)據(jù)綁定。

一、input和textarea

在vue實(shí)戰(zhàn)項(xiàng)目中,vue里面的data屬性可以和input、textarea元素進(jìn)行數(shù)據(jù)綁定。簡單的解釋就是比如input這個事件被觸發(fā)的時(shí)候,value里面的數(shù)據(jù)就可以將數(shù)據(jù)聽不到Script里面的data數(shù)據(jù)中;當(dāng)綁定的data數(shù)據(jù)發(fā)生改變的時(shí)候,也會實(shí)時(shí)的同步到value當(dāng)中,從而就可以實(shí)現(xiàn)雙向數(shù)據(jù)綁定。

我們可以通過代碼進(jìn)行驗(yàn)證,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>數(shù)據(jù)雙向綁定</title>
</head>
<body>
    <div id="app">
<p>姓名:
    <input type="text" v-model="userInfo.xingming">
</p>
<p>郵箱:
    <input type="text" v-model="userInfo.youxiang">
</p>
<p>簡歷:
    <textarea name="" id="" cols="30" rows="10" v-model="userInfo.jianli"></textarea>
</p>
<p>姓名:{{userInfo.xingming}}</p>
<p>郵箱:{{userInfo.youxiang}}</p>
<p>簡歷:{{userInfo.jianli}}</p>
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                userInfo:{
                    xingming:'',
                    youxiang:'',
                    jianli:"編寫你的簡歷:"
                }
            }
        })
    </script>
</body>
</html>

運(yùn)行結(jié)果:

二、radio和CheckBox

在vue實(shí)戰(zhàn)中,這兩個元素也和input和textarea元素一樣,都是和data屬性一樣,選擇數(shù)據(jù)綁定,而且CheckBox就是多選元素,可以選擇多個value,可以在data里面使用一個數(shù)組進(jìn)行綁定。只要change事件得到觸發(fā),value屬性可以同步到data里面;當(dāng)綁定vue里面的數(shù)據(jù)改變的時(shí)候,就會同步到check里面,從而實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。我們還是通過簡單的代碼實(shí)例來看一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>數(shù)據(jù)雙向綁定</title>
</head>
<body>
    <div id="app">
<p>性別:
    <input type="radio" v-model="userinfo.sex" name="sex" value="男">男
    <input type="radio" v-model="userinfo.sex" name="sex" value="女">女
</p>
<p>愛好:
    <input type="checkbox" v-model="userinfo.hobby" value="唱"/>唱
    <input type="checkbox" v-model="userinfo.hobby" value="跳"/>跳
    <input type="checkbox" v-model="userinfo.hobby" value="rap"/>rap
    <input type="checkbox" v-model="userinfo.hobby" value="籃球"/>籃球
</p>
<p>練習(xí)生與否:
    <input type="checkbox" v-model="userinfo.lianxisheng" value="練習(xí)生">
</p>
<p>性別:{{userinfo.sex}}</p>
<p>愛好:{{userinfo.hobby}}</p>
<p>練習(xí)生與否:{{userinfo.lianxisheng}}</p>
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                userinfo:{
                    sex:'男',
                    hobby:'【】',
                    lianxisheng:" "
                }
            }
        })
    </script>
</body>
</html>

三、select

select元素也是使用了value屬性和vue里面的data屬性進(jìn)行屬性綁定,當(dāng)change事件觸發(fā)的時(shí)候,value的值就會同步到vue里面的數(shù)據(jù),當(dāng)綁定的vue數(shù)據(jù)改變的時(shí)候,也會同步到value,也從而實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。代碼實(shí)例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>數(shù)據(jù)雙向綁定</title>
</head>
<body>
    <div id="app">
<p>學(xué)歷:
<select name="" id="" v-model="xueli">
    <option value="本科">本科</option>
    <option value="碩士">碩士</option>
    <option value="博士">博士</option>
    <option value="博士后">博士后</option>
</select>
</p>
<p>{{xueli}}</p>
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el:'#app',
            data:{
xueli:"本科"
            }
        })
    </script>
</body>
</html>

結(jié)果:

四、雙向綁定的修飾符

這里介紹幾個雙向綁定的數(shù)據(jù)修飾符。

1、lazy

默認(rèn)情況下, v-model在每次innut事件觸發(fā)后將輸入框的值與數(shù)據(jù)進(jìn)行同步;添加lazy后,只有在enter和輸入框(失焦點(diǎn))的時(shí)候,數(shù)據(jù)才能實(shí)現(xiàn)同步。

2、number

如果要將用戶的輸入值自動地轉(zhuǎn)為數(shù)字類型,可以給 v-model添加.number修飾但v-model.number 只能輸入數(shù)字

3、trim

如果要自動地過濾用戶輸入的首尾空白字符,可以給 v-model添加.trim 修飾符,V-model.trim可以去除前后空格。

我們還還還是通過代碼實(shí)例來簡單的了解一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>數(shù)據(jù)雙向綁定</title>
</head>
<body>
    <div id="app">
<h1>1、數(shù)據(jù):{{val1}}</h1>
<input type="text" v-model.lazy="val1">
<h1>2、數(shù)據(jù):{{val2}}</h1>
<input type="text" v-model.number="val2">
<h1>3、數(shù)據(jù):{{val3}}</h1>
<input type="text" v-model.trim="val3">
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
var m = {
    val1:1,
    val2:2,
    val3:''
};
var vm = new Vue({
    el:'#app',
    data:m,
})
    </script>
</body>
</html>

運(yùn)行結(jié)果:

在第一個框輸入數(shù)據(jù)的時(shí)候,輸入框的值和數(shù)據(jù)因?yàn)闆]有數(shù)據(jù)和它進(jìn)行同步顯示,所以當(dāng)光標(biāo)移到第二個框的時(shí)候,第一個框就會引起失焦,這個時(shí)候就可以顯示出原本輸入的文字,因?yàn)閘azy只有在enter和失焦的時(shí)候,數(shù)據(jù)才能進(jìn)行同步;在第二個框每次輸入輸入一個數(shù)值就可以同步顯示;第三個先是輸入幾個空格,然后在輸入數(shù)值,只有數(shù)值才能同步,而輸入的空格就會唄忽視掉,因?yàn)閠rim可以去除前后空格。

到此這篇關(guān)于Vue數(shù)據(jù)雙向綁定的實(shí)現(xiàn)方式講解的文章就介紹到這了,更多相關(guān)Vue數(shù)據(jù)雙向綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue項(xiàng)目用后端返回的文件流實(shí)現(xiàn)docx和pdf文件預(yù)覽

    vue項(xiàng)目用后端返回的文件流實(shí)現(xiàn)docx和pdf文件預(yù)覽

    本文主要介紹了vue項(xiàng)目用后端返回的文件流實(shí)現(xiàn)docx和pdf文件預(yù)覽,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法

    Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法

    這篇文章主要給大家介紹了關(guān)于Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法,在Vue3中可以使用reactive函數(shù)將一個普通對象轉(zhuǎn)換為響應(yīng)式對象,需要的朋友可以參考下
    2023-08-08
  • vue中生成條形碼(jsbarcode)和二維碼(qrcodejs2)的簡單示例

    vue中生成條形碼(jsbarcode)和二維碼(qrcodejs2)的簡單示例

    在vue項(xiàng)目中難免遇到有要生成條形碼或者二維碼的功能需求,下面這篇文章主要給大家介紹了關(guān)于vue中生成條形碼(jsbarcode)和二維碼(qrcodejs2)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Vue源碼探究之虛擬節(jié)點(diǎn)的實(shí)現(xiàn)

    Vue源碼探究之虛擬節(jié)點(diǎn)的實(shí)現(xiàn)

    這篇文章主要介紹了Vue源碼探究之虛擬節(jié)點(diǎn)的實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 在iview+vue項(xiàng)目中使用自定義icon圖標(biāo)方式

    在iview+vue項(xiàng)目中使用自定義icon圖標(biāo)方式

    這篇文章主要介紹了在iview+vue項(xiàng)目中使用自定義icon圖標(biāo)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 12 種使用Vue 的最佳做法

    12 種使用Vue 的最佳做法

    這篇文章主要介紹了12 種使用Vue 的最佳做法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 簡述vue路由打開一個新的窗口的方法

    簡述vue路由打開一個新的窗口的方法

    這篇文章主要介紹了vue路由打開一個新的窗口的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • 淺談基于Vue.js的移動組件庫cube-ui

    淺談基于Vue.js的移動組件庫cube-ui

    這篇文章主要介紹了基于Vue.js的移動組件庫cube-ui,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Vue+Jwt+SpringBoot+Ldap完成登錄認(rèn)證的示例代碼

    Vue+Jwt+SpringBoot+Ldap完成登錄認(rèn)證的示例代碼

    本篇文章主要介紹了Vue+Jwt+SpringBoot+Ldap完成登錄認(rèn)證的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法

    vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法

    這篇文章主要介紹了vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10

最新評論