1.内置组件
component 动态加载组件-动态组件
1.这个组件必须要有一个is属性,用来加载对应的组件名称
2.为了满足需要大量手写自定义组件的场景,实现tab选项卡。
2.keep-alive 缓存组件-缓存组件的状态
1.把组件的所有被改变的状态都会存储起来
2.组件属性:exclude 把不想被缓存的组件名字写入,该组件就不会被缓存了
3.组件属性:include 只缓存被包含的组件,其他不写入的组件名字的组件则不会被缓存
3.slot插槽
1.匿名插槽,无论组件的内部被插入任何内容,都会被slot标签接收,常用于纯静态的可复用的dom解构中
2.具名插槽:父组件使用template标签使用v-slot:name加名字,插槽组件使用slot标签的name属性接收
3.作用域插槽:父组件在template标签使用v-slot:name=“接收值” 子组件在slot标签上绑定属性传参
4.组件中data为什么是一个函数?
因为组件是用来复用的,且js里对象是引用关系,如果组件data中是一个对象,那么这样作用域没有隔离,子组件中的data属性值会互相影响,如果组件中data是一个函数,那么每个实例可以维护一份被返回对象的独立的拷贝,组件实例之间的data属性值不会互相影响;而new Vue的实例,是不会被复用的,因此不存在引用对象的问题。
5.vue生命周期
7.vue-router
路由【组件】的懒加载:使用函数返回一个import方法,在import方法会返回一个propmise对象。只有当用户手动切换到当前的路由中,才会去加载载这个组件
8.$router和$route
答:router是new VueRouter的实例对象,表示当前项目中整个路由实例,拥有全部的路由功能,而route仅仅表示当前路由的信息,
9.路由传参
query 在地址中使用git方式显示:?key=value&key=value
parms 多个地址加载同一个组件,使用 /:动态参数 接收不同的值,其原理就是动态路由
元信息
router-view 通过组件传参,凡是被router-view加载除出来的视图组件,都会被传入自定义属性
10.路由守卫 | 路由的拦截器 |路由的生命周期
全局的守卫
beforeEach 前置守卫【路由的鉴权】
afterEach 后置守卫【作用很小】
路由独享守卫【路由配置里】
beforeEenter 进入前确认【打酱油的】
组件内的路由守卫【组件用的】
beforeRouteEnter 组件加载前再次确认
beforeRouteUpdate 【最重要】 当前页面不销毁,但是地址在变化,用于获取最新路由信息的函数
beforeRouteLeave 离开当前的路由组件前
11. 动态路由和嵌套路由
- 动态路由:`/path/:xx`一个路由匹配多个地址加载的是同一个组件
- 嵌套路由:一个父路由里有children子路由
12. 路由元信息
- meta对象来传递数据
13. 动态添加路由
- addRoute 只能添加一条路由匹配对象
- addRoutes 可以添加一组路由匹配对象
14. 路由模式
都是基于导航对象封装的,分别是history滑入hash对象
- history 历史记录对象封装
- hash 锚点方式,用`#`表示路径
区别是:hash不会发起真正的url请求,而history会发起真正的请求
-abstract:只适用于node
## vuex 全局状态管理器
## state 核心状态管理对象
## getters 相等于计算属性,对state进行计算并且返回新值
## mutations 同步方法,修改state的
## actions 动作:处理异步
## module 模块
## plugins 插件
## strict 严格模式