①在data中声明的变量,函数都可以。②常量都可以。③只要是合法的JavaScript表达式都可以
④模板表达式都被放在沙盒中,只能访问全局变量的一个白名单:
'Infinity,undefined,NaN,isFinite,isNaN,' 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' 'require'
2、注意:不能使用全局变量或者全局函数,只能用data里面的变量和函数。
指令的作用:当表达式的值改变时,将其产生的连带影响,响应式的作用于DOM。
所有的指令名字都以"v-"开头、都是以HTML标签的属性形式存在的,例如
{{msg}}
{{msg}}
需要注意的是:虽然指令写在标签的属性位置上,但是这个指令浏览器是看不懂的,需要vue框架进行编译,浏览器才能看懂。
表达式:插值语法{{这里写什么}},指令就可以写什么,但是不能在增加{{}}。
有的指令不需要参数和表达式 ,——> v-once、
有的指令不需要参数,但需要表达式 ,——> v-if = "表达式"、
有的指令需要参数和表达式 ,——> v-bind:参数 = "表达式"
作用:只渲染元素一次,重新渲染之后该元素跳过重复渲染。
作用:表达式的执行结果需要是一个布尔型的数据:true || false
{{msg}}
{{msg}}
{{msg}}
{{msg}}
单向数据绑定:data——>视图(view)
这个指令可以让HTML标签的某个属性的值产生动态的效果。两种写法
当标签体中的数据想要动态,使用插值语法,HTML标签的属性动态,使用指令语法。
双向数据绑定:data<——>视图(view)
只能使用在表单类型的value元素上,因为表单类的元素才能给用户提供交互输入的界面。
这个方法是:给对象新增属性,或者设置对象原有的属性。
Object.defineProperty(给哪个对象新增属性,'新增的这个属性名叫什么',{给新增的属性设置相关的配置项key:value 对})
第三个参数的配置项:
value 配置项:给属性赋值
writable:设置该属性的值是否可以被修改,true:可以,false:不行
getter方法:当读取属性值的时候自动调用,getter方法的返回值就代表属性的值。
setter方法:当修改值的时候自动调用,setter方法上的参数用来接收传过来的值。
注意:当setter,getter方法存在,value和writable不能存在。
enumerable:设置属性是否能遍历,false:不可遍历,true:可遍历。
configurable:表示属性是否能被删除,false:不能,true:能。
通过访问 代理对象的属性 来间接访问 目标对象的属性。依靠Object.defineProperty()实现。
v-on:click='表达式' 表示当发生鼠标单击事件之后,执行表达式。
v-on:keydown='表达式' 表示当发生键盘按下事件之后执行表达式。v-on可以写成@
在vue中,所有事件所关联的回调函数,需要在vue实例的配置项methods中进行定义。
method是是一个对象{}, 在这个methods对象中可以定义多个回调函数。
Vue在调用回调函数的时候,会自动给回调函数传递一个对象,这个对象是:当前发生的事件对象
在绑定回调函数的时候,可以在回调函数的参数上使用$event占位符,vue看见$event自动将当前事件以对象的形式传过去。
.stop: 停止事件冒泡,相当于e.stopPropagation()。从内到外添加
.prevent: 阻止事件的默认行为,e.preventDefault()。
.capture: 添加事件监听器时使用事件捕获模式,事件.capture。从外向内添加
.self: 这个事件如果是“我自己元素”上发生的事件,这个事件不是别人传递给我的,执行程序。
.once:事件只发生一次。
.passive:无需等待,直接继续执行事件的默认行为。解除阻止。
.passive和.prevent修饰符是对立的,不可以共存。
常用的按键修饰符:.enter、.tab(需要配合keydown事件使用)、.delete(捕获“删除”和“退格”键)、.esc、.space、.up、.down、.left.、right
tab:
enter
page-down
page-up
回车
通过e.key获取这个键的真是名字,将真实名字以kebab-case风格进行命名。
自定义按键修饰符:通过Vue全局配置对象config来进行按键修饰符的自定义,即
Vue.config.keyCodes.huiche = 13
系统修饰符:ctrl、alt、shift、meta。
对于keydown事件来说:只要按下ctrl就会触发keydown事件
对于keyup事件来说:需要按下ctrl,并且加上按下组合键,然后松开组合键之后才能触发
如果使用箭头函数,this指向window;不使用,指向当前的Vue。
当你调用某个方法时,直接调用会执行多次,如果使用计算属性,只要不修改值,只调用一次
{{msg}}
原先数据:
数据反转:{{repeatInfo()}}
数据反转:{{haha}}
数据反转:{{haha}}
数据反转:{{haha}}
监听多个属性、将文件名拿过来可以直接监听、可以监听Vue的原有属性、也可以监听计算属性。
immediate:初始化调用函数 true 开启初始化 || false 默认不调用
handler:固定写法,方法名必须交handler,有两个参数,改变后的值和原有的值。
当被监听的属性发生变化时,handler自动调用一次。
{{msg}}
数字: