一
二
其他
```
- v-for
基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法`alias in expression`,为当前遍历的元素提供别名。
```html
{{ item.text }}
```
`v-for`的默认行为会尝试原地修改元素而不是移动它们。要强制其重新排序元素,你需要用特殊 attribute`key`来提供一个排序提示。
```html
{{ item.text }}
```
- v-on
`@`为缩写。
绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句。
```html
```
- v-bind
`:`为缩写。
动态地绑定一个或多个属性,或一个组件`prop`到表达式。
在绑定`class`或`style`时,支持其它类型的值,如数组或对象。
```html
```
- v-model
在表单控件或者组件上创建双向绑定。
```html
```
### 全局注册组件
`Vue.component('my-component-name', { /* ... */ })`
`my-component-name`为组件名,即使用时的标签名称,别用大写。
使用组件:` `,和使用标签差不多
### template
组件的具体内容。
### data
组件的数据,个组件的`data`选项必须是一个函数,每个实例可以维护一份被返回对象的独立的拷贝,不然操作数据时影响到其它所有实例。
### props
这里定义的是使用组件时,标签中传入的属性的名称的定义。
可以是数组或对象
- 数组
直接写要传入的属性名称就可以了
```javaScript
props: ['title', 'likes', 'isPublished', 'commentIds', 'author']
```
- 对象
对象的键为属性名称,值为属性的类型及验证的方法。
```javaScript
props: {
// 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
propA: Number,
// 多个可能的类型
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 带有默认值的数字
propD: {
type: Number,
default: 100
},
// 带有默认值的对象
propE: {
type: Object,
// 对象或数组默认值必须从一个工厂函数获取
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
}
```
## 渐进式框架
VUE不强求你一次性接受并使用它的全部功能特性。
就是用你想用或者能用的功能特性,你不想用的部分功能可以先不用。
所以VUE的适用面很广,你可以用它代替老项目中的JQuery。也可以在新项目启动初期,有限的使用VUE的功能特性,从而降低上手的成本。
一开始不需要你完全掌握它的全部功能特性,可以后续逐步增加功能。
## MVVM 模型
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
Message is: {{ message }}
``` ## Vue组件 ```javaScript