Vue第二周

本文详细介绍了Vue.js中的事件修饰符(如.prevent、.stop、.once和.self)以及v-model修饰符的用法,包括.lazy、number和.trim,同时探讨了双向数据绑定、自定义指令和Vue的MVVM模型与MVC的区别。
摘要由CSDN通过智能技术生成

1.事件修饰符

.prevent 阻止浏览器默认事件
<!--设置之后无法跳转链接,但是能触发函数-->
 <a href="http://www.baidu.com" @click.prevent="fun()">链接</a>
.stop阻止冒泡事件

当两个盒子重叠在一起并且都设置了事件时,stop可以阻止冒泡

.once只触发一次
.self 阻止自身事件促发,但不会阻止冒泡,间接性有捕获效果
    在冒泡事件中,点击设置了self的子类,才不会触发自身
    点击设置了self本身是可以触发的
<div @click.self="func2()" class="box1">
            1
            <p @click.self.once="func3()" class="box2">
                2
                <span @click="func4()" class="box3">3</span>
            </p>
        </div>
func2(){
                console.log("div元素");
            },
            func3(){
                // console.log(event);
                // event.stopPropagation();
                console.log("p元素");
            },
            func4(){
                console.log("span元素");
            }

在这里插入图片描述

2.v-model修饰符

注:使用v-model时尽量使用v-model=“” 不要使用v-model:value=“”,只有在需要设置初始值才使用v-model:value=“”

.lazy 失去焦点后提交值
<textarea v-model.lazy="formData.other" name="" id="" cols="30" rows="10"></textarea>
{{formData.other}}

在这里插入图片描述
失去焦点后提交里面的值,失去焦点前并不会触发

.number有效转换"1"== 1 为数字
年龄:<input type="number" v-model.number="formData.ages">

设置之后获取的value值是数字,而不是字符串

.trim清除前后空格
姓名:<input type="text" v-model.trim:value="formData.userName">
v-model是什么
  1.双向数据绑定,既可以从data流向页面,也可以由页面流向data
  2.通常用于表单收集,v-model默认绑定value值
  3.v-model:value=""或v-model=""(简写)
v-model原理
  1.v-model本质是一个语法糖
  2.v-bind绑定数据
  3.oninput数据传递
directives局部自定义指令语法
directives:{
            "nums":{
                // bind成功绑定时调用
                bind(element,binding){
                    console.log(element);
                    console.log(binding);
                    console.log("----------------");
                },
                // inserted成功插入页面调用
                inserted(element,binding){
                    console.log(element);
                    console.log(binding);
                    console.log("----------------");
                },
                // update重新解析时(改变)调用
                update(element,binding){
                    console.log(element);
                    console.log(binding);
                    console.log("----------------");
                }
            }
        }
测试双向数据绑定原理
  e和event区别
  1.定义函数(),接收时e,当为形参
  2.e自身某个事件带有的方法,event是window带有的
  3.e = window.event;兼容

自定义指令

  规则:定义指令名称不能使用驼峰和v-,要是用-连接,记得添加引号
  使用时要v-自定义名称
  函数写法:名称(节点,绑定对象){}
  对象写法:
  名称:{
        绑定成功调用
        bind(节点,绑定对象){},
        插入到页面调用
        inserted(节点,绑定对象){},
        重新解析时调用(值发生改变)
        update(节点,绑定对象){}
    }
1.局部自定义指令

directives ,写入Vue实例中,上边directives局部自定义指令语法已经写了,咱们直接跳过

2.全局自定义指令

Vue.directive ,定义在实例化之前

Vue.directive("num2",function(element,binding){
        element.innerHTML = binding.value;
    })

插值

1.使用插值做计算
<h1>{{a-b}}</h1>
2.methods操作计算
<h1>{{func()}}</h1>
func(){
        // return this.a-this.b; 计算
        return this.a+"-"+this.b//拼接
}

MVVM模型

Vue的MVVM模型,数据代理

MVVM与MVC区别
  1.VM(vue)==C(调服务)
  2.MVVM双向(双向绑定,数据代理),MVC单向(直接操作DOM)
  3.MVVM(虚拟DOM)更快渲染,MVC单向(真实DOM)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值