本篇文章给大家带来了关于Vue的相关知识,其中主要给大家介绍了我们为什么使用v-model?用vue怎么实现v-model的,感兴趣的朋友一起来看一下吧,希望对大家有帮助。为什么使用v-model? v-model作为双向绑定指令也是vue
本篇文章给大家带来了关于Vue的相关知识,其中主要给大家介绍了我们为什么使用v-model?用vue怎么实现v-model的,感兴趣的朋友一起来看一下吧,希望对大家有帮助。
v-model主要提供了两个功能,view层输入值影响data的属性值,data属性值发生改变会更新view层的数值变化。
其核心就是,一方面modal层通过defineProperty来劫持每个属性,一旦监听到变化通过相关的页面元素更新。另一方面通过编译模板文件,为控件的v-model绑定input事件,从而页面输入能实时更新相关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>
<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>
<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>
<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(附代码示例)的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: 一文详解vue怎么实现v-model(附代码示例)
本文链接: https://www.lsjlt.com/news/206810.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2023-05-25
2023-05-25
2023-05-25
2023-05-25
2023-05-25
2023-05-24
2023-05-24
2023-05-24
2023-05-24
2023-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0