目录
一、vue简介
1.什么是vue
2.vue的特性
2.1 数据驱动视图
2.2 双向数据绑定
2.3 MVVM
2.4 MVVM 的工作原理
二、vue的基本使用
1. 基本使用步骤
2. 基本代码与MVVM的对应关系
三、vue的调试工具
1. 下载工具
2. 设置工具
四、vue的指令与过滤器
1. 指令的概念
1.1 内容渲染指令
![](https://img-blog.csdnimg.cn/b03ce73432584966afe6f701a73d7246.png)
![](https://img-blog.csdnimg.cn/728701ad4bb44d0db25466cd1f46c234.png)
![](https://img-blog.csdnimg.cn/d2a135d9d3a04262bdc438f53d1e5e33.png)
1.2 属性绑定指令
1.3 事件绑定指令
![](https://img-blog.csdnimg.cn/9b1a4f5e101546cc82cc442d49685c8e.png)
![](https://img-blog.csdnimg.cn/3d5eddbfb28c4bb6951bd5c99163af82.png)
例:
事件修饰符 :
按键修饰符:
1.4 双向绑定事件
例:
1.5 条件渲染指令
1.6 列表渲染指令
例:
案例:(品牌列表)
2.过滤器 (vue3 中已经没有了 )
![](https://img-blog.csdnimg.cn/6f89c7b5355d40e596e8ddc32562c598.png)
2.1 定义过滤器
例:
2.2 私有过滤器和全局过滤器
全局过滤器是在main.js中定义的
例;(就近原则 有私有的先用私有的)
2.3 连续调用多个过滤器
2.4 过滤器传参
2.5 过滤器的兼容性
五、侦听器
1. 什么是watch侦听器
![](https://img-blog.csdnimg.cn/fcfbe22e55234fb7b06a046b38ef1208.png)
2. immediate 选项
![](https://img-blog.csdnimg.cn/20fc18d186cd4631a37a4ead20bd21c5.png)
3. deep选项
![](https://img-blog.csdnimg.cn/5089ee8f82e246c9a40760d827b1daf7.png)
4. 监听对象单个属性变化
总结:
1. 方法格式的侦听器
+ 缺点1:无法在刚进入页面的时候,自动触发!!!
+ 缺点2:如果侦听的是一个对象,如果对象中的属性发生了变化,不会触发侦听器!!!
2. 对象格式的侦听器
+ 好处1:可以通过 **immediate** 选项,让侦听器自动触发!!!
+ 好处2:可以通过 **deep** 选项,让侦听器深度监听对象中每个属性的变化!!!
六、计算属性
1. 什么是计算属性
![](https://img-blog.csdnimg.cn/253f28f7f9b24253aff3cb401c86230c.png)
2. 计算属性的特点
![](https://img-blog.csdnimg.cn/05b3e7172b7d4748a43403a24fc1cd76.png)
特点:
1. 定义的时候,要被定义为“方法”
2. 在使用计算属性的时候,当普通的属性使用即可
好处:
1. 实现了代码的复用
2. 只要计算属性中依赖的数据源变化了,则计算属性会自动重新求值!
七、vue-cli
1. 什么是单页面应用程序
2. 什么是 vue-li
3. 安装和使用
vue-cli 的使用
1. 在终端下运行如下的命令,创建指定名称的项目:
vue cerate 项目的名称
2. vue 项目中 src 目录的构成:
assets 文件夹:存放项目中用到的静态资源文件,例如:css 样式表、图片资源
components 文件夹:程序员封装的、可复用的组件,都要放到 components 目录下
main.js 是项目的入口文件。整个项目的运行,要先执行 main.js
App.vue 是项目的根组件。
4. vue 项目的运行流程
八、vue组件
1.什么是组件化开发
2. vue中的组件化开发
3. vue组件的三个组成部分
3.1 template
3.2 script
3.3.vue 组件中的data必须是函数
![](https://img-blog.csdnimg.cn/ae323dd6d46d4c38a617f1a432801d31.png)
3.4 style
3.5 让style中支持less语法
4. 组件之间的父子关系
4.1 使用组件的三个步骤
4.2 通过components 注册的是私有组件
4.3 注册全局组件
5. 组件的props
5.1 props 是只读的
5.2 props的default默认值
5.3 props 的 type值类型
5.4 props的required必填项
6. 组件之间的样式冲突问题
6.1 要如何解决样式冲突的问题
6.2 style 节点的 scoped 属性
6.3 /deep/ 样式穿透
九、生命周期
1. 组件的生命周期
1.1 生命周期&生命周期函数
1.2 组件的生命周期函数的分类
1.3 生命周期图示
分析:
2. 组件之间的数据共享
2.1 组件之间的关系
2.2 父子组件之间的数据共享
2.2.1 父组件向子组件共享数据
2.2.2 子组件向父组件共享数据
2.3 兄弟之间的数据共享
EvenBus 的使用步骤
3. ref引用
3.1 什么是ref引用
3.2 使用ref引用DOM元素
3.3 使用ref引用组件实例
例:
3.4 控制文本框和按钮的按需切换
3.5 让文本框自动获得焦点
3.6 this.$nextTick(cb)方法
4. 对数组进行复习
some方法
1.数组some方法作用
判断数组中是否有满足条件的元素
2.语法:array.some( function ( item, index, arr) {} ,thisValue)
function : 必须,数组中的每个元素都会执行这个函数
第一个参数:item,必须,当前元素的值
第二个参数:index,可选,当前元素在数组中的索引值
第三个参数:arr,当前元素属于的数组对象
thisValue : 可选,对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"
3.some方法特点
(1)函数执行次数 !== 数组长度
(2)函数内部的return
return true : 循环结束,找到了满足条件的元素
return false : 循环继续,没找到循环继续,如果所有元素全部遍历还是没找到,最终结果为false
(3)some方法的返回值
true : 有没有满足条件的元素
false : 没有满足条件的元素
4.注意点:
(1)some()方法不会对空数组进行检测
(2)some()方法不会改变原始数组
every方法
1.every数组方法的作用
判断数组中是否所有元素都满足条件
2.语法:array.every( function ( item, index,arr) {} )
第一个参数: item,必须,当前元素的值
第二个参数 : index,可选,当前元素在数组中的索引值
第三个参数 : arr,当前元素所处的数组对象
3.every方法特点
(1)循环次数 !== 数组长度
(2)函数内部的return
return true : 循环继续 当前元素满足条件,继续判断,如果循环执行完毕还是true,则every的返回值就是true
return false : 循环结束,当前元素不满足条件,every的返回值也是false
(3)every方法的返回值
return true : 全部元素都满足条件
return false : 有元素不满足条件
4.注意点:
(1)every()方法不会对空数组进行检测
(2)every()方法不会改变原始数组
reduce方法
语法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数:
用法:
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
注意:
reduce() 对于空数组是不会执行回调函数的。
十、动态组件
1. 什么是动态组件
2. 如何实现动态组件渲染
3. 使用 keep-alive 保持状态
4. keep-alive 对应的生命周期函数
5. keep-alive 的 include 属性
例:
拓展:
总结:
十一、插槽
1. 什么是插槽
2. 体验插槽的基础用法
2.1 没有预留插槽的内容会被丢弃
2.2 后备内容
3. 具名插槽
![](https://img-blog.csdnimg.cn/4ba798fec6454bfa88d156a4ea4cf1ef.png)
3.1 为具名插槽提供内容
例:
3.2 具名插槽的简写形式
4. 作用域插槽
4.1 使用作用域插槽
例:
4.2 解构插槽
例:
总结:
十二、自定义指令
1. 什么是自定义指令
2. 自定义指令的分类
3.私有自定义指令
4.使用自定义指令
5.为自定义指令动态绑定参数值
6.通过binding获取指令的参数值
7.updte 函数
8.函数简写
9.全局自定义指令
例:
总结:
十三、路由
1.前端路由的概念与原理
1.1 什么是路由
路由(英文:router)就是对应关系。
1.2 SPA 与前端路由
1.3 什么是前端路由
1.4 前端路由的工作方式
结论:前端路由,指的是 Hash 地址与组件之间的对应关系!
1.5 实现简单的前端路由
2.vue-router 的基本使用
1. 什么是vue-ruoter
2. vue-router包
2.1 在项目中安装vue-router
2.2 创建路由模块
2.3 导入并且挂在路由模块
2.4 声明路由连接和占位符
3. 声明路由的匹配规则
3.vue-router 的常见用法
1.路由重定向
![](https://img-blog.csdnimg.cn/c77e133c9d084ffebe1b15eee0bffad9.png)
2. 嵌套路由
3. 声明子路由连接和子路由占位符
![](https://img-blog.csdnimg.cn/2341ed9e872b461ca288405c3b1eab59.png)
3.1 通过children属性声明子路由规则
![](https://img-blog.csdnimg.cn/e85e2bc7d8e74e06a32a4c25b7f58984.png)
默认子路由:
4. 动态路由匹配
4.1 动态路由的概念
![](https://img-blog.csdnimg.cn/63a5853ef0674fa1b997cb7b1104550f.png)
4.2 $ route.params 参数对象
4.3 使用 props 接收路由参数
拓展:查询参数
5. 声明式导航&编程式导航
5.1 vue-router 中的编程时导航API
5.2 $router.push
5.3 $router.replace
5.4 $router.go
5.5 $router.go的简化用法
![](https://img-blog.csdnimg.cn/0e56cca328f84ec9a7255da6573e71ed.png)
6. 导航守卫
6.1 全局前置守卫
6.2 守卫方法的3个参数
6.3 next函数的三种调用方式
6.4 控制后台主页的访问权限
例: