无标题
Vue
构建用户界面的渐进式框架
一套前端框架,简化原生JavaScript 中的DOM操作
基于MVVM思想,实现数据的双向绑定
快速入门
-
在HTML页面中引入vue.js
-
创建vue对象
1
2
3
4
5
6
7new Vue({
// 表示这个vue对象控制的是id为app容器中的内容
el: "#app",
data: {
message: "hello Vue"
}
}) -
编写视图
1
2
3
4<div id="app">
<input type="text" v-model="message">
{{message}}
</div>
常用指令
-
=={{}}==
为插值表达式,里面可以是变量、三元运算符、函数调用、算数运算,不能再标签属性中使用 -
指令 作用 v-html innerHTML,动态渲染标签 v-bind(可以简写为:) 为HTML标签绑定属性值,设置href,css样式 v-model 在表单元素上创建双向数据绑定 v-on(可以简写为:+事件类型) 为HTML标签绑定事件 v-if 条件性的渲染元素,只有为true是才渲染,元素标签才会显示 v-else-if v-else v-show 根据条件展示元素,更改的是display的属性值 v-for 列表渲染,遍历容器的属性值或者对象的属性 -
使用细节
v- for 的使用后面要加key值,便于后面使用id进行删除时有唯一的定位值,一般来说ID值是由后端传递过来的,可以先用Date.now() 时间戳
1
2
3
4
5
6
7
8
9<li class="todo" v-for="(item,index) in taskList " :key="item.id">
<div class="view">
<span class="index">{{index+1}}</span> <label>{{item.task}}</label>
<button class="destroy" @click="delById(item.id)"></button>
</div>
</li>
delById(id) {
this.taskList = this.taskList.filter(item => item.id !== id)
}
生命周期
状态 | 阶段周期 |
---|---|
beforeCreate | 创建前 |
created | 创建后 |
beforeMount | 挂载前 |
mounted | 挂载完成 |
beforeUpdate | 更新前 |
updated | 更新后 |
beforeDestroy | 销毁前 |
destroyed | 销毁后 |
使用生命周期的细节
初始化渲染请求一般放在create中,只有在mounted阶段才能操作DOM元素
在beforeDerstroy中释放资源,定时器,全局监听器等
常用语法
记住属性内部一定不能使用插值表达式引用值
-
v-bind 可以简写为:后加属性值,主要是为了增强style本身的属性,使它成为动态的属性
1
2
3
4
5
6
7//:disabled="item.num<=1" 当num<1时该按钮被禁用
<button :disabled="item.num<=1" class="decrease" @click="cut(item.id)"> - </button>
//图片的src属性变成动态获取的
<img :src="item.icon" alt="" />
//对象形式:适用于基于布尔条件判断的类应用,尤其是当需要同时判断多个条件时。
//数组形式:适用于需要组合固定类和动态类的情况,或者当类的组合不依赖于条件判断时。
:class="{active:item.isChecked}" -
v-model 双向数据绑定 主要是对表单元素进行绑定,当页面上的元素修改后会直接响应到页面上
-
v-for 遍历数组中的数据,一般用来渲染列表,记得后面要根:key元素,可以定位到该列
-
v-on 可以简写为@click @后面加事件类型
-
v-if 和v-else 要在同一个父元素底下使用
修饰指令符
在常用的指令后面可以加上一些修饰符简化代码的开发
1 | v-model.trim //去除首尾空格 |
计算属性(computed)
作为属性直接调用,会对计算出来的结果缓存,再次读取的时候是直接读缓存中的数据
一个结果依赖多个值的时候推荐使用
computed中计算属性内部的this依然指向的是Vue实例
具体写法
1 | //当要修改计算属性时就要使用完整写法 |
watch侦听器(监视器)
监听数据变化,执行一些业务逻辑和异步操作 比如在数据变化后将数据保存在本地中
根据具体需要来确定写法,能使用简单写法的尽量用简单写法
实现实时的数据的转换
简单写法
1 | data: { |
完整写法
1 | watch: { |
Vue CLI
官方提供的脚手架,用于快速生成Vue项目的模板
基于node.js,可以用nvm来管理不同版本的node.js
提供的功能
- 统一的目录结构
- 本地调式
- 热部署(应用正在运行的时候,自动更新应用,也就是更改了代码但不用重启项目)
- 单元测试
- 集成打包
使用Vue CLI
- 命令行创建vue项目 vue create 项目名称
- 图像化界面 vue ui
项目结构
ESlint 代码规范
团队统一的编码风格,安装ESLint插件 会出现高亮错误,在创建项目的时候要将Eslint规范勾选上,同时要注意依赖冲突的问题,在vscode设置中配置如下
vue的基本使用方式
组件文件以vue结尾,每个组件由三部分组成 结构