参考教程:
笔记
(一)、基础
1、当一个 Vue 实例被创建时,它将 data 对象中的所有的属性加入到 Vue 的响应式系统中。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。值得注意的是只有当实例被创建时就已经存在于 data 中的属性才是响应式的。
例外:使用 Object.freeze()数据对象,这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。
2、生命周期
比如 created
、mounted
、updated
和 destroyed
注意:
不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a)
或 vm.$watch('a', newValue => this.myMethod())
。因为箭头函数并没有 this
,this
会作为变量一直向上级词法作用域查找,直至找到为止,经常导致 Uncaught TypeError: Cannot read property of undefined
或 Uncaught TypeError: this.myMethod is not a function
之类的错误。
图示:(*****)
3、v-html 输出真正的 HTML
注意:你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。
4、指令、绑定(参数)
动态参数:从 2.6.0 开始,可以用方括号括起来的 JavaScript 表达式作为一个指令的参数:(注意:空格和引号,放在 HTML attribute 名里是无效的;避免使用大写字符来命名键名)
<a v-bind:[attributeName]="url"> ... </a>
5、计算属性(computed)、方法(method)、侦听属性(watch)
(1)、计算属性的set
和get
方法
(2)、当需要在数据变化时执行异步或开销较大的操作时,watch这个方式是最有用的。
注意:防止滥用watch侦听属性值变化,使用computed代替。
6、条件渲染(v-if、v-else、v-else-if、v-show)
注意:Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。所以 Vue 为你提供了一种方式来表达“这两个元素是完全独立的,不要复用它们”。只需添加一个具有唯一值的 key 属性即可。
例:如果没有key属性,切换界面的时候,两个input是复用的,输入的内容会被保存。
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username" key="username-input">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address" key="email-input">
</template>
7、 列表渲染(v-for)
注意:
(1)、不要使用对象或数组之类的非基本类型值作为 v-for 的 key。请用字符串或数值类型的值。
(2)、Vue 不能检测对象属性的添加或删除,不能检测数组的index等赋值
(3)、v-for和v-if 同时使用的,优先级
(4)、v-for传递到子组件的值,迭代数据,要实现自动传递,必须使用props
8、事件处理(修饰符、按键码)
9、表单输入绑定(修饰符)
10、插槽
、动态组件(is、keep-alive)、异步组件
(二)、深入
1、组件注册(重点:单文件组件, 基础组件的自动化全局注册)
2、props
3、自定义事件(没有看完。。。)
官方框架和开发工具
vue-loader (其实是webpack的loader)
vue-router 路由管理器
vue-cli (项目构建工具)
vue-devtools (chromes等浏览器的开发工具,debugger工具)
vuex(像是vue+redux合体)