如何理解Vue的v-model指令的使用方法
本文主要講解v-model指令,主要包括HTML元素的v-model和組件上的v-model兩種,用四個(gè)簡單的案例介紹v-model的使用。
案例一:HTML元素的v-model -輸入框(text)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-model指令</title> <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script> </head> <body> <div id="app4"> {{price}}<br> <input v-model="price"><!-- 下行注釋的語法糖 --> <!-- <input :value="price" @input="price = $event.target.value"> --> </div> <script> new Vue({ el: '#app4', data: { price: '20' } }); </script> </body> </html>
案例二: 定制組件的v-model - 輸入框(text)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-model指令</title> <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script> </head> <body> <div id="app3"> {{price}} <my-input v-model="price"></my-input><!-- 下行注釋的語法糖 --> <!-- <my-input :value="price" @input="val => {price = val}"></my-input> --> </div> <script> Vue.component('my-input', { template: '<div></span><input type="text" ref="input" :value="value" @input="doThis"/></div>', props: { value: String }, methods: { doThis() { this.$emit('input', this.$refs.input.value); } } }); new Vue({ el: '#app3', data: { price: '10' } }); </script> </body> </html>
案例三: 定制組件的v-model - 復(fù)選框(checkbox) - 2.2.0 新增
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-model指令</title> <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script> </head> <body> <div id="app2"> {{fruit}}<!-- 觀測數(shù)據(jù)變化 --> <my-checkbox v-model="fruit.apple" value="apple"></my-checkbox><!-- 下行注釋的語法糖 --> <!-- <my-checkbox :checked="fruit.apple" @change="val => {fruit.apple = val}" value="apple"></my-checkbox> --> <my-checkbox v-model="fruit.peach" value="peach"></my-checkbox><!-- 下行注釋的語法糖 --> <!-- <my-checkbox :checked="fruit.peach" @change="val => {fruit.peach = val}" value="peach"></my-checkbox> --> </div> <script> Vue.component('my-checkbox', { template: '<div><span>{{value}}</span><input type="checkbox" :checked="checked" @change="doThis" :value="value"/></div>', model: { prop: 'checked', event: 'change' }, props: { checked: Boolean, value: String }, methods: { doThis() { this.$emit('change', !this.checked); } } }); new Vue({ el: '#app2', data: { fruit: {//數(shù)據(jù) apple: true, peach: false } } }); </script> </body> </html>
案例四: 定制組件的v-model - 單選按鈕(radio) -2.2.0 新增
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-model指令</title> <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script> </head> <body> <div id="app"> {{fruit}}<!-- 觀測數(shù)據(jù)變化 --> <my-radio v-model="fruit" value="apple" name="myFruit"></my-radio><!-- 下行注釋的語法糖 --> <!-- <my-radio :checked="fruit" @change="val => {fruit = val}" value="apple"></my-radio> --> <my-radio v-model="fruit" value="peach" name="myFruit"></my-radio><!-- 下行注釋的語法糖 --> <!-- <my-radio :checked="fruit" @change="val => {fruit = val}" value="peach"></my-radio> --> </div> <script> Vue.component('my-radio', { template: '<div><span>{{value}}</span><input :name="name" type="radio" ref="radio" :checked="checked===value" @change="doThis" :value="value"/></div>', model: { prop: 'checked', event: 'change' }, props: { checked: String, value: String, name: String }, methods: { doThis() { this.$emit('change', this.$refs.radio.value); } } }); new Vue({ el: '#app', data: { fruit: 'peach'//數(shù)據(jù) } }); </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
搭建vue3項(xiàng)目以及按需引入element-ui框架組件全過程
element是基于vue.js框架開發(fā)的快速搭建前端的UI框架,下面這篇文章主要給大家介紹了關(guān)于搭建vue3項(xiàng)目以及按需引入element-ui框架組件的相關(guān)資料,文中通過圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02解決vue項(xiàng)目 build之后資源文件找不到的問題
這篇文章主要介紹了解決vue項(xiàng)目 build之后資源文件找不到的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09關(guān)于Vue項(xiàng)目跨平臺運(yùn)行問題的解決方法
這篇文章主要介紹了關(guān)于Vue項(xiàng)目跨平臺運(yùn)行問題的解決方法,特別記錄一下踩的坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09一文詳解Vue如何整合Echarts實(shí)現(xiàn)可視化界面
ECharts,縮寫來自Enterprise Charts,商業(yè)級數(shù)據(jù)圖表,一個(gè)純Javascript的圖表庫,可以流暢的運(yùn)行在PC和移動設(shè)備上。本文將在Vue中整合Echarts實(shí)現(xiàn)可視化界面,感興趣的可以了解一下2022-04-04用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器
這篇文章主要介紹了如何用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04