(Vue -05) v-model指令 + 绑定事件 + 深度响应式

一、v-model指令的详细用法

基础用法/

Vue官方-表单输入绑定

你可以用 v-model 指令在表单 {{address}}

    
3.复选框
  • 单个复选框,绑定到布尔值:
    
是否同意: 【{{isOk}}】
    
  • 多个复选框,绑定到同一个数组:
爱好: 吃饭 打游戏 睡觉 打豆豆 看电视 学习 {{hobbies}}
   
4.单选按钮

绑定一组单选框,每个单选框指定相同的name属性。

    
性别: 【{{sex}}】
   
5.选择框

下拉框,绑定一个数组。
单选时:

    
城市: {{checkCity}}
    

多选时 (绑定到一个数组):
下拉框设置multiple属性后,按住ctrl就可以选择多个项

    
喜欢的食物: {{checkFoods}}
    

修饰符/

1.添加了.lazy修饰符,可以将input事件转为change事件

在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步。你可以添加 lazy 修饰符,从而转为在 change 事件之后进行同步:

     姓名:{{name}}
2.添加了.number修饰符,会自动将你的输入转为number类型
    年龄:{{age+20}}

3.添加了.trim修饰符,用于去掉内容的首位空格

    姓名:开始{{name}}结束

二、绑定事件

@v-on: 的简写,通过v-on: 指令绑定事件,指定一个,methods选项,里面的,定义的,方法。

  • 调用方法时,不传参数,默认会将事件对象作为参数传递。
    打印的e就是事件对象。
    
    
  • 调用方法时,传的是什么参数,接的就是什么参数。
    打印的e就是传的hello。
    
    
  • 调用方法时,传递一个$event参数,该参数就是事件对象。
    
    
  • 当事件处理的代码比较简单时,可以将代码直接写在行内。
    注意:只能操作Vue管理的数据。
    
年龄:{{age}}

事件修饰符/

Vue官方-事件修饰符
在事件处理程序中调用 event.preventDefault()event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。
为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

.stop用于阻止事件冒泡
.prevent 用于阻止默认行为
.self只能在自身元素上触发,不能在子元素身上触发触发的
.once点击事件将只会触发一次

按键修饰符/

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:
.enter 只有在回车时,才会调用事件方法
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right

    
请输入搜索关键字:
请输入搜索关键字:
new Vue({
            el:'#app',
            data:{
                age:20
            },
            methods: {
                keyup(e){
                    let {keyCode} = e
                    // console.log(keyCode);
                    if (keyCode===13) {
                        alert('搜索指定的商品')
                    }
                    // console.log('111');
                    // console.log(e);
                },
                keyup1(){
                    alert('搜索指定的商品')
                }
            },
        })

三、深度响应式

obj对象里面的每一个属性,都会采用Object.defineProperty去封装,实现响应式。
所谓响应式,指的是,数据发生变化后,页面自动更新。
给对象,后添加的数据不会采用Object.defineProperty去封装,所以,就失去了响应式。
vue通过$set方法,给对象添加响应式属性 this.$set(this.obj,'sex','男')
vue通过$delete方法,删除对象的属性,并触发响应式 this.$delete(this.obj,'age')
在vue中,操作数组,并触发页面更新只能使用数组的以下方法:
push,pop,unshift,shift,splice,resolve,sort
=>>> this.arr.push(66) this.arr.splice(2,1)
如果想通过下标操作数组,也必须要使用$set$delete方法,
=>>>this.$set(this.arr,5,66) this.$delete(this.arr,2)

    
姓名:{{name}}
学生信息:
{{obj}}
{{arr}}
    

你可能感兴趣的:((Vue -05) v-model指令 + 绑定事件 + 深度响应式)