【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

大家好,我是被白菜拱的猪。

一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy!

一、计算属性

3-计算属性的getter和setter方法

【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
在计算属性中,fullName这个属性里面有get和set方法,但是set方法不常用,所以我们直接简写成fullName()

4-计算属性与methods的对比

计算属性有缓存,假如调用多次一样的方法时,只执行一次。

methods里面的方法是调用一次执行一次。所以占据的内存比计算属性大。

所以假如多次执行不变的方法时,我们使用计算属性,假如内容经常改变的,我们使用methods。

二、ES6补充

先讲讲什么是ES,以及ES,JavaScript,TypeScript的关系
ECMA Script
它是一种由ECMA组织(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范
而我们学的JavaScript是ECMA的实现, 但术语ECMAScript和JavaScript平时表达同一个意思。

ECMAScript和JavaScript的关系
由于JavaScript的创造者Netscae公司的版权问题,ECMAScript不能叫Javascript。总之,ECMAScript和JavaScript的关系是,前者是后者的规格(语言规范),后者是前者的一种实现。

JavaScript 与 TypeScript 的关系
TypeScript是Javascript的超集,实现以面向对象编程的方式使用Javascript。当然最后代码还是编译为Javascript。

1-块级作用域

在ES5中 我们尝试使用var,这其实是一直缺陷,ES5是块作用域这一说的,只有函数有作用域,这就导致会出现很多问题,比如使用If,和for循环的时候就出错乱。
下面举个例子,给五个按钮绑定事件,你点击一个按钮,控制台会显示点击哪一个按钮。
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
你会发现点击第一个按钮的时候,显示的是 你点击了第五个按钮。这是因为ES5没有块级作用域导致的,每个函数共用了一个变量i。i最后变成5的时候,每个按钮绑定的事件的i都变成了5,相当于i是全局变量。

所以引入了let关键字,每一次绑定的i都是自己的,不会因为别人的i改变而改变。
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
ES5的var是没有作用域的(if/for)
ES6的let是有作用域的(if/for)

另外ES5使用闭包也可以解决这个问题
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

2-const的使用

跟c/c++一样,const修饰的是常量,不可以被改变。而且声明式必须初始化,保证了数据的安全性。
建议:在ES6开发过程中,优先使用const。只有标识符被改变的时候才使用let。注意const,let是在ES6中新出现的。
注意:
常量的含义是指向的对象不能修改,但可以修改对象的属性。
对象在内存里面有一个内存地址,变量保存的是对象的内存地址。内存地址不可以改变,但是值可以改。

3-对象字面量的增强写法

(1)属性的增强写法

【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

(2)函数的增强写法

【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

三、事件监听

1-v-on的基本使用

这里就贴上上一篇的代码,按钮点击增加数字。
v-on的语法糖写法@
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

2-v-on的参数问题

关于括号加不加的问题,括号可不加的两个条件是
1.是在事件监听的时候,假如在mustache语法时,括号得要加。
2.函数没有参数的时候。
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

关于事件参数问题下面进行具体的演示

  • 事件调用的方法没有参数
  • 在方法定义的时候有参数,调用的时候有括号

【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
如果函数需要参数,但是没有传入,那么函数的形参为undefined

  • 在方法定义的时候有参数,调用的时候连括号都没有
    【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听
    这时候Vue会默认将将浏览器产生的event事件对象作为参数传入到方法中。

  • 需要event的同时仍需要其他参数
    如何手动调用event对象-$event
    【人生苦短我学Vue】-【DAY02】-计算属性,ES6补充,事件监听

四、结束语

学而不思则罔,思而不学则殆。