使用步骤
- 引包 具备Vue对象
- 启动Vue, 通过Vue对象 去new Vue(options)
- 配置options的选项对象
- el:‘目的地’, template:‘模板’, data:function(){
return {要使用的key:数据}
} - 页面中存在该目的地,目的地字符串描述同jQuery一样
什么是指令
- 在Vue中提供了一些对于页面+数据的更为方便的输出,这些操作就是指令,一v-xxx表示
- 指令中封装了一些DOM行为结合属性作为一个暗号,根据不同暗号进行相关DOM操作绑定
常用指令:更便捷操作DOM及数据
1. v-text :
2. v-html
3. v-if
4. v-else-if
5. v-else
- v-if、v-else-if、v-if三者必须连在一起写,中间不能有其他的元素
6. v-show
v-bind绑定属性
- 给元素的属性赋值(任何属性),是从Vue到页面的单项数据流
- 可以给已存在的属性赋值 ,如input的value属性
- 也可以给自定义属性赋值
- 语法:在元素上 v-bind:属性名=" ‘常量’||变量名 "。若为常量必须用 ‘’ ,否则会报错
- 简写形式 :属性名=" ‘常量’||变量名 "
<div v-bind:原属性名="变量"></div>
<div :原属性名="变量"></div>
v-on:绑定事件
- 处理自定义原生事件,给按钮添加click并使变量样式改变
- 在元素上 v-on:原生事件名=“表达式||函数名”
- 简写形式 @原生事件名=“表达式”
v-model
- 双向数据绑定(只能给具备value属性的元素进行双向数据绑定)
v-for
- 基本语法 v-for=“item in arr”
- 对象操作 v-for=“item in obj”
- 如果是数组,没有id
- v-for="(item,index) in arr" :class=“index”
- v-for的使用中,除了item输出,还有一些辅助属性
- v-for属性的顺序
- 数组:item -> index
- 对象: value -> key -> index
关于对象内的this
- Vue已经把以前this是Window或者事件对象的问题解决了
- methods和data本身在同一个对象中,所以在该对象中可以通过this随意取
- this.xxx取的是data中的值,this.xxMethod调用methods中的函数
渲染组件-父使用自组件
- 创建子组件(对象)
var Header={
template:'模板',
data是一个函数,
methods:功能,
components:子组件们
}
- 在父组件中声明,根属性components:{ 组件名:组件对象 }
- 在父组件药用的地方使用<组件名><组件名/>
- 总结:有父 -> 生子 -> 声明 -> 使用
父子组件传值(父传子)
- 父用子的时候通过属性传递
- 子要声明props:[ ‘属性名’ ]来接收
- 收到后就可以随便使用了
- 在template中直接使用
- 在js中this.属性名 用
- 常量传递直接用,变量传递加冒号
变量: <son :title="xxx"></son>
常量: <son title="xxx"></son>
- 总结
- 父用子 : 先有子 -> 声明子 -> 使用子
- 父传子 : 父传子(属性) -> 子声明(收) -> 子直接用(就是自己的一样)
注册全局组件
- 应用场景:多处使用的公共性功能组件,就可以注册成全局组件,减少代码冗余
- 全局API Vue.component(‘组件名’,‘组件对象’)
附加功能
- filter || filters
- 将数据进行添油加醋的操作
- 过滤器分为两种
(1)组件内的过滤器(组件内有效)Vue.filter(‘过滤器名’,‘过滤方式fn’)
(2)全局过滤器(所有组件共享)Vue.filters( ’ 过滤器名 ’ , ’ 过滤方式fn ’ ) - 先注册,后使用
- 组件内filters:{ 过滤器名:过滤器fn },最终fn内通过return产出最终数据
- 使用方式{{ 原有数据 | 过滤器名 }}
- 需求:页面input框输入字符串,反转字符串输出,按参数显示label
- 过滤器fn:
(1)声明function(data,argv1,argv2…)
(2)使用{{ 数据 | 过滤器名(参数1,参数2)}}