您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“vue如何實現v-model”,內容詳細,步驟清晰,細節處理妥當,希望這篇“vue如何實現v-model”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
為什么使用v-model? v-model作為雙向綁定指令也是vue兩大核心功能之一,使用非常方便,提高前端開發效率。在view層,model層相互需要數據交互,即可使用v-model。
v-model的原理簡單描述
v-model主要提供了兩個功能,view層輸入值影響data的屬性值,data屬性值發生改變會更新view層的數值變化。
其核心就是,一方面modal層通過defineProperty來劫持每個屬性,一旦監聽到變化通過相關的頁面元素更新。另一方面通過編譯模板文件,為控件的v-model綁定input事件,從而頁面輸入能實時更新相關data屬性值。
v-model是什么 v-model就是vue的雙向綁定的指令,能將頁面上控件輸入的值同步更新到相關綁定的data屬性,也會在更新data綁定屬性時候,更新頁面上輸入控件的值。
父組件
<template>
<div id="app">
{{username}} <br/>
<my-input type="text" v-model="username"></my-input>
</div>
</template>
<script>
import myinput from './components/myinput'
export default {
name: 'App',
components:{
myinput
},
data(){
return {
username:''
}
}
}
</script>
myinput.vue:
<template>
<div class="my-input">
<input type="text" class="my-input__inner" @input="handleInput"/>
</div>
</template>
<script>
export default {
name: "myinput",
props:{
value:{ //獲取父組件的數據value
type:String,
default:''
}
},
methods:{
handleInput(e){
this.$emit('input',e.target.value) //觸發父組件的input事件
}
}
}
</script>
App.vue
<template>
<div>
<kmDialog
v-model="showDialog"
>
<el-button @click="show">點我</el-button>
</div>
</template>
<script>
import kmDialog from 'KmDialog.vue'
export default {
components: {
KmDialog
}
data () {
return {
showDialog: false
}
},
methods: {
show() {
this.showDialog = true
}
}
}
</script>
KmDialog.vue
<template>
<el-dialog
:title="isEdit ? '編輯設備' : '新增設備'"
:visible.sync="value"
width="40%"
@close="cancel"
>
<span>這是一段信息</span>
</el-dialog>
</template>
<script>
export default {
props: {
value: {
default: false,
type: Boolean
}
},
methods: {
cancel() {
this.$emit('input', false)
}
}
}
</script>
讀到這里,這篇“vue如何實現v-model”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。