Vue核心知识:v-model语法糖的使用,了解数据双向绑定

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:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值