网站首页 > 技术文章 正文
问题:v-model语法糖在组件上的使用
需要实现效果:如果在一个页面中我们需要引入一个弹窗组件,点击按钮 a显示弹窗,然后点击弹窗的关闭按钮,关闭弹窗,用v-model实现。
使用v-model来进行双向数据绑定的时:
<input v-model="something">
仅仅是一个语法糖:
<input v-bind:value="something" v-on:input="something = $event.target.value">
所以在组件中使用的时候,相当于下面的简写:
<custom v-bind:value="something" v-on:input="something = $event.target.value"></custom>
所以要组件的v-model生效,它必须:
- 接受一个value属性
- 在有新的value时触发input事件
使用示例(单页应用):
<template> <div class="toggleClassWrap"> <modelVue v-if="ifShow" v-model="ifShow"></modelVue> </div> </template> <script type="text/javascript"> import modelVue from '../../components/model.vue' export default{ data () { return { ifShow:true, } }, components : { modelVue } } </script>
model.vue组件
<template> <div id="showAlert"> <div>showAlert 内容</div> <button class="close" @click="close">关闭</button> </div> </template> <script> export default{ props:{ value:{ type:Boolean, default:false, } }, data(){ return{} }, mounted(){ }, methods:{ close(){ this.$emit('input',false);//传值给父组件, 让父组件监听到这个变化 } }, } </script> <style scoped> .close{ background:red; color:white; } </style>
上述只有在工程目录中才方便看到效果,我来改成demo,方便大家:
变动的地方只有modelVue改为model.
猜你喜欢
- 2024-10-12 学习Vue的数据绑定语法,实现动态的用户界面(四)
- 2024-10-12 Vue前端框架:绑定单个复选框。 vue复选框默认选中
- 2024-10-12 vue2响应式原理 vue2.0响应式原理
- 2024-10-12 vue数据绑定语法 vue样式绑定语法
- 2024-10-12 【Vue】第5章 Vue数据绑定和计算属性详解
- 2024-10-12 Vue数据及事件绑定、filter过滤器
- 2024-10-12 Vue开发:组件绑定自定义事件及其应用
- 2024-10-12 vue.js实战之表单绑定-单选按钮 vue表格单选
- 2024-10-12 跟神一起学前端-初识vue、数据绑定
- 2024-10-12 vue.js 动态绑定class的几种方式 vue动态绑定类
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)