Installation
可以使用的方式:
script
标签方式加载vue.js
- cdn
https://unpkg.com/vue@2.0.5/dist/vue.js
- npm
Introduction
- 通过指定的语法渲染js变量
- DOM元素与变量绑定,同步更新,无需手动操纵DOM
- 通过
vue
标签属性,完成绑定data,绑定事件,条件语句以及循环等特性 - 创建自定义可复用的组件,可直接在html标签中使用
The Vue Instance
Vue
构造方法创建实例,并且可以扩展构造方法创建可重用的组件(继承?)- 每一个
Vue
实例都代理了data
参数中所有的属性,并且如果在Vue对象实例化之前你的自定义变量绑定到了data中,那么他们的值是时刻同步的 - 每个
Vue
对象在实例化的过程中,经历了一系列的过程,就是有它的生命周期
Template Syntax
Vue
使用基于HTML的语法,允许你将渲染到DOM中元素与Vue
实例中的data数据绑定Vue
把模板数据编译到虚拟DOM的渲染方法中,根据app不同的状态,实现最少量的组件的重新渲染- {{}}法上可以渲染文本、可以支持javascript表达式,可以通过管道实现过滤
Computed Properties and Watchers
- {{}}语法中可以使用js表达式,但是并不推荐,不易于维护,不利于调试,引入 computed属性,compulted属性依赖于现有的属性,只要依赖值没变,其值不变,页面中多处使用可以直接返回计算好的值,与之对应的用方法实现,每次都要执行一遍
- 对于数据和页面的rective,compluted可以满足大多数情形,当你需要完成异步并且有大量的数据计算响应等操作,可以使用
watch
选项 - 总结:
compluuted
与watch
的目的都是监听Vue
实例数据的变化,并作出响应
Class and Style Bindings
- 使用
Vue
定义的属性v-bind:class
可以进行样式类的绑定,支持丰富的格式,可以使用对象的方式在vue
data option中定义,可以使用数组传递多个类名,可以依赖于现有的data使用compluted属性,可以跟现有的html标签类混用等等 v-bind:style
可直接绑定书写行内样式,支持对象方式、数组方式
Conditional Rendering
- 条件标签
v-if
,v-show
,可以做条件判断来进行html元素的显示 - 不同点在于
v-if
根据值的变化每次重新渲染,v-show
等价于display:show|none
也就是元素是在页面中渲染好的
Event Handling
v-on
标签绑定各种事件,可以做v-on:click="counter += 1"
这种简单的处理,也可以调用Vue
中方法(方法可将原生的DOM event通过$event
传递)- 经常用到的阻止事件冒泡或阻止事件的默认行为在
Vue
中可以与v-on
搭配使用点语法.stop .prevent .capture .self
来实现,不需要再去关心具体的DOM事件细节 - 针对键盘的
key
值监听,Vue
提供也提供了简单的绑定语法v-on:keyup.键值
,也可使用vue提供的定义好的常用键值的别名
Form Input Bindings
v-model
可以处理基本的用户输入(input)、复选框、单选框等的值赋值给v-model指定的变量- 仅仅使用
v-model
只可以获取用户输入的字符串或者true false(单、富选框),可以使用v-bind
将input的value与vue的属性绑定,这样可以动态的修改
Components
- 组件用来扩展现有的html标签并进行封装重用
- 使用自定义components需要在实例化Vue对象之前确保组件已经注册
- 除注册为全局组件之外,可以注册为某一个vue实例的本地组件
- 在页面中直接使用自定义组件时,浏览器会无法解析,需要使用
is=组件名
- 组件中的
data option
必须为一个function
,否则console 报 warnning - 组件复用不可避免的需要不同组件嵌套使用,涉及到数据的向下传递,
Vue
通过props option
传递【注:props在js中的驼峰命名在html中需要改为连字符】 - 对于组件需要接收的参数,Vue提供了参数验证
- 子组件与父组件的通信是通过
customer events
即自定义事件 v-on:事件名
来监听子组件可能触发的事件v-on:click.native=""
同样可以监听原生的JavaScript事件- 非父子关系的组件也可以通过
hook
的方式完成通讯