Skip to content

Latest commit

 

History

History
76 lines (38 loc) · 3.94 KB

9787302484929.md

File metadata and controls

76 lines (38 loc) · 3.94 KB

《Vue.js 实战》

9787302484929

用了iView,感觉很精髓,故买作者的书,以表敬意。其实看了iView的API对render很感兴趣啊~

第1章 初始Vue.js

第2章 数据绑定和第一个Vue应用

插值与表达式:Vue.js 只支持单个表达式,不支持语句和流程控制。另外,在表达式中,不能使用用户自定义的全局变量,只能使用Vue白名单内的全局变量,如Math和Date。

数据驱动DOM是Vue.js的核心概念,所以不到万不得已时不要主动操作DOM,你只需要维护好数据,DOM的事Vue会帮你优雅的处理。

v-bind的基本用途是动态更新HTML元素上的属性,比如id、class等。

第3章 计算属性

{ { text.split(',').reverse().join('-') } } 引出计算属性。

在一个计算属性里可以完成各种复杂的逻辑,包括运算。函数调用等,只要最终返回一个结果就可以。

计算属性还有两个很实用的小技巧容易被忽略:一个是计算属性可以依赖另一个计算属性;另一个是计算属性不仅可以依赖当前Vue实例的数据,还可以依赖其它实例的数据。

计算属性缓存

  • 为什么有了methods,还需要实现计算属性呢?原因就是计算属性是基于它的依赖缓存的。一个计算属性所依赖的数据发生变化时,它才会重新取值,所以只要依赖不变,计算属性也就不更新。

第4章 v-bind 及 class 与 style 绑定

第5章 内置指令

v-if 与 v-show

v-if 中如果不想复用组件则需要在组件上添加 key 属性

v-if 是真正的条件渲染,它会根据表达式适当地销毁或重建元素及绑定元素或子组件

v-show 只是简单的CSS属性切换,无论条件真与否,都会被编译。

第6章 表单与 v-model

第7章 组件详解

为什么组件的data必须返回一个函数,那是因为如果实例化了多个这个组件,且都引用的是外部对象,则如果一个组件的data某属性变更,则所有组件的data某属性也会跟着变更。

由于HTML特性不区分大小写,当使用DOM模板时,驼峰命名的 props 名称要转为短横分割命名(kabab-case)。但如果杂使用字符串模板,仍然可以忽略这些限制。

在子组件的 自定义属性上 加了v-bind的属性会自动转换响应的类型,如果不加则只会转换成字符串。

template的DOM结构必须被一个元素包含,如果直接写成“这里是组件内容”,而不带<div></div>是无法渲染的。

通常父组件的模板中包含子组件,父组件要正向地向子组件传递数据或参数时,子组件接收到后根据参数的不同来渲染不同的内容或执行操作。这个正向传递数据的过程就是通过props来实现的。

组件的props值可以是两种:一种是字符串,另一种是对象。

Vue 2x 和 Vue 1x 主要区别有一个就是 单向数据流。这是因为让子组件尽可能的与父组件解耦。

在JavaScript中对象和数组都是引用类型,指向同一个内存空间,所以props是对象和数据时,在子组件内改变时会影响父组件的。

组件通信

组件关系可分为父子组件通信、兄弟组件通信、跨级组件通信。

JavaScript的设计模式——观察者模式,其中有dispaEvent何addEventListener两个方法。在Vue中也有对应的两套模式:$emit() $on(),其中子组件用$emit()来触发事件,父组件用$on()来监听子组件的事件。

非父子组件通信:Vue2中请用中央事件总监(Bus),即在一个空的Vue实例上进行$emit()$on()触发与接收。

我们除了中央总线bus外,还有两种方法实现组件间通信:父链和子组件索引。父链就是$this.parent,这个可是千万用不得。自组件索引就是ref,也不是太好用。

使用slot分发内容

第8章 自定义指令

第9章 Render 函数