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

Vue?中v-model的完整用法及原理

 更新時(shí)間:2022年08月04日 08:26:20   作者:小余努力搬磚  
本文主要介紹了Vue?中v-model的完整用法及原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、 v-model的基本使用

v-model雙向綁定,既輸入框的value改變,對(duì)應(yīng)的message對(duì)象值也會(huì)改變,修改message的值,input的value也會(huì)隨之改變。無(wú)論改變那個(gè)值,另外一個(gè)值都會(huì)變化。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <input type="text" v-model="message">{{message}}
</div>
<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      message: "hello"
    }
  })
</script>
</body>
</html>

二、 v-model的原理

先來(lái)一個(gè)demo實(shí)現(xiàn)不使用v-model實(shí)現(xiàn)雙向綁定。

實(shí)現(xiàn)雙向綁定需要是用v-bind和v-on,使用v-bind給input的value綁定message對(duì)象,此時(shí)message對(duì)象改變,input的值也會(huì)改變。但是改變input的value并不會(huì)改變message的值,此時(shí)需要一個(gè)v-on綁定一個(gè)方法,監(jiān)聽(tīng)事件,當(dāng)input的值改變的時(shí)候,將最新的值賦值給message對(duì)象。獲取事件對(duì)象,target獲取監(jiān)聽(tīng)的對(duì)象dom,value獲取最新的值。v-model = v-bind + v-on$event

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!-- $event獲取事件對(duì)象,$event.target.value獲取input值 -->
<!--  <input type="text" :value="message" @input="changeValue($event.target.value)">{{message}}-->
  <!--事件調(diào)用方法傳參了,寫(xiě)函數(shù)時(shí)候省略了小括號(hào),但是函數(shù)本身是需要傳遞一個(gè)參數(shù)的,這個(gè)參數(shù)就是原生事件event參數(shù)傳遞進(jìn)去-->
  <input type="text" :value="message" @input="changeValue">{{message}}
</div>
<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      message: "hello world"
    },
    methods: {
      changeValue(event){
        console.log("值改變了");
        this.message = event.target.value
      }
    }
  })
</script>
</body>
</html>

三、 v-model結(jié)合radio類(lèi)型使用

radio單選框的屬性是互斥的,如果使用v-model,可以不使用name就可以互斥。

v-model綁定`sex`屬性,初始值為“男”,選擇女后`sex`屬性變成“女”,因?yàn)榇藭r(shí)是雙向綁定。

  <div id="app">
    <!-- name屬性radio互斥 使用v-model可以不用name就可以互斥 -->
    <label for="male">
      <input type="radio" id="male" name="sex" value="男" v-model="sex">男
    </label>
    <label for="female">
        <input type="radio" id="female" name="sex" value="女" v-model="sex">女
    </label>
    <div>你選擇的性別是:{{sex}}</div>
 
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"zzz",
        sex:"男"
      },
 
    })
  </script>

四、 v-model結(jié)合復(fù)選框類(lèi)型使用

checkbox可以結(jié)合v-model做單選框,也可以多選框。

checkbox結(jié)合v-model實(shí)現(xiàn)單選框,定義變量初始化為,點(diǎn)擊checkbox的值為,也是。isAgree false true isAgree true

checkbox結(jié)合v-model實(shí)現(xiàn)多選框,定義數(shù)組對(duì)象,用于存放愛(ài)好,將與checkbox對(duì)象雙向綁定,此時(shí)選中,一個(gè)多選框,就多一個(gè)true,就添加一個(gè)對(duì)象。hobbies hobbies hhobbies

單選

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!--單選框-->
  <h2>單選框</h2>
  <label for="agree">
    <input type="checkbox" id="agree" v-model="isAgree">同意協(xié)議
  </label>
  <h3>您的選選擇是:{{isAgree}}</h3>
  <button :disabled="!isAgree">下一步</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      isAgree: true
     
    }
  })
</script>
</body>
</html>

多選

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!--多選框-->
  <h2>多選框</h2>
  
    <input type="checkbox" name="hobby" value="籃球"  v-model="hobbies">籃球
    <input type="checkbox" name="hobby" value="足球"  v-model="hobbies">足球
    <input type="checkbox" name="hobby" value="羽毛球"  v-model="hobbies">羽毛球
    <input type="checkbox" name="hobby" value="乒乓球"  v-model="hobbies">乒乓球
  <h2>你的愛(ài)好是:{{hobbies}}</h2>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      hobbies: []
 
    }
  })
</script>
</body>
</html>

值的綁定

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <!--多選框-->
  <h2>多選框</h2>
  <label :for="item" v-for="(item,index) in hhobbies" :key="index">
    <input type="checkbox" name="hobby" :value="item" :id="item" v-model="hobbies">{{item}}
  </label>
  <h2>你的愛(ài)好是:{{hobbies}}</h2>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      hobbies: [],
      hhobbies: ["籃球","足球","乒乓球","羽毛球"]
 
    }
  })
</script>
</body>
</html>

五、 v-model結(jié)合select

v-model結(jié)合select可以單選也可以多選。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>v-model結(jié)合select類(lèi)型</title>
</head>
<body>
  <div id="app">
    <!-- select單選 -->
    <select name="fruit" v-model="fruit">
      <option value="蘋(píng)果">蘋(píng)果</option>
      <option value="香蕉">香蕉</option>
      <option value="西瓜">西瓜</option>
    </select>
    <h2>你選擇的水果是:{{fruit}}</h2>
 
    <!-- select多選 -->
    <select name="fruits" v-model="fruits" multiple>
      <option value="蘋(píng)果">蘋(píng)果</option>
      <option value="香蕉">香蕉</option>
      <option value="西瓜">西瓜</option>
    </select>
    <h2>你選擇的水果是:{{fruits}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        fruit:"蘋(píng)果",
        fruits:[]
      },
    })
  </script>
</body>

六、 v-model的修飾符的使用

lazy:默認(rèn)情況下是實(shí)時(shí)更新數(shù)據(jù),加上,從輸入框失去焦點(diǎn),按下enter都會(huì)更新數(shù)據(jù)

number:默認(rèn)是字符串類(lèi)型,使用復(fù)制為數(shù)字類(lèi)型

trim:用于自動(dòng)過(guò)濾用戶輸入的首尾空白字符

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>v-model修飾符</title>
</head>
<body>
  <div id="app">
    <h2>v-model修飾符</h2>
    <h3>lazy,默認(rèn)情況是實(shí)時(shí)更新數(shù)據(jù),加上lazy,從輸入框失去焦點(diǎn),按下enter都會(huì)更新數(shù)據(jù)</h3>
    <input type="text" v-model.lazy="message">
    <div>{{message}}</div>
    <h3>修飾符number,默認(rèn)是string類(lèi)型,使用number賦值為number類(lèi)型</h3>
    <input type="number" v-model.number="age">
    <div>{{age}}--{{typeof age}}</div>
    <h3>修飾符trim:去空格</h3>
    <input type="text" v-model.trim="name">
 
  </div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"zzz",
        age:18,
        name:"ttt"
      },
 
    })
  </script>
</body>
</html>

到此這篇關(guān)于Vue 中v-model的完整用法及原理的文章就介紹到這了,更多相關(guān)Vue v-model用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue cli3 實(shí)現(xiàn)分環(huán)境打包的步驟

    vue cli3 實(shí)現(xiàn)分環(huán)境打包的步驟

    這篇文章主要介紹了vue cli3 實(shí)現(xiàn)分環(huán)境打包的步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • vue項(xiàng)目啟動(dòng)后沒(méi)有局域網(wǎng)地址問(wèn)題

    vue項(xiàng)目啟動(dòng)后沒(méi)有局域網(wǎng)地址問(wèn)題

    這篇文章主要介紹了vue項(xiàng)目啟動(dòng)后沒(méi)有局域網(wǎng)地址問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • vue中的render函數(shù)、h()函數(shù)、函數(shù)式組件詳解

    vue中的render函數(shù)、h()函數(shù)、函數(shù)式組件詳解

    在vue中我們使用模板HTML語(yǔ)法來(lái)組建頁(yè)面的,使用render函數(shù)我們可以用js語(yǔ)言來(lái)構(gòu)建DOM,這篇文章主要介紹了vue中的render函數(shù)、h()函數(shù)、函數(shù)式組件,需要的朋友可以參考下
    2023-02-02
  • vue3.0實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼(組件)及校驗(yàn)

    vue3.0實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼(組件)及校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了vue3.0實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼(組件)及校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 基于Vue實(shí)現(xiàn)簡(jiǎn)單的權(quán)限控制

    基于Vue實(shí)現(xiàn)簡(jiǎn)單的權(quán)限控制

    這篇文章主要為大家學(xué)習(xí)介紹了如何基于Vue實(shí)現(xiàn)簡(jiǎn)單的權(quán)限控制,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以了解一下
    2023-07-07
  • Vue中使用vux配置代碼詳解

    Vue中使用vux配置代碼詳解

    這篇文章主要介紹了Vue中使用vux配置代碼詳解,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • mpvue中配置vuex并持久化到本地Storage圖文教程解析

    mpvue中配置vuex并持久化到本地Storage圖文教程解析

    這篇文章主要介紹了mpvue中配置vuex并持久化到本地Storage的教程詳解,# 配置vuex和在vue中相同,只是mpvue有一個(gè)坑,就是不能直接在new Vue的時(shí)候傳入store。本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-03-03
  • Vue上傳組件vue Simple Uploader的用法示例

    Vue上傳組件vue Simple Uploader的用法示例

    本篇文章主要介紹了Vue上傳組件vue Simple Uploader的用法示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • Element Carousel 走馬燈的具體實(shí)現(xiàn)

    Element Carousel 走馬燈的具體實(shí)現(xiàn)

    這篇文章主要介紹了Element Carousel 走馬燈的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)

    簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)

    下面小編就為大家?guī)?lái)一篇簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10

最新評(píng)論

安宁市| 通化市| 洱源县| 霍林郭勒市| 梅州市| 湖口县| 威宁| 彭山县| 北票市| 上林县| 武乡县| 衡山县| 永平县| 宕昌县| 余江县| 随州市| 昌吉市| 抚州市| 盐边县| 子长县| 门源| 普兰店市| 湖南省| 阳信县| 清远市| 惠州市| 息烽县| 望谟县| 广元市| 铅山县| 盐城市| 集安市| 岫岩| 榆树市| 江达县| 佛冈县| 灌云县| 新巴尔虎右旗| 行唐县| 阿勒泰市| 刚察县|