我正在参加「掘金·启航计划」
回顾昨日学习
依赖注入的响应式处理
`provide:function(){
// 函数的this指向当前实例
return {
count: this.count, // this.count => 取出当前实例的count的值 => 1
getCount:()=>{ // 传入一个函数( 函数的this指向当前实例) => 被子组件对应名称引用->当子组件调用方法时 会执行当前函数 -> 重新取值
return this.count;
},
setCount:(v)=>{
this.count = v;
},
a:10,
b:20,
}
}`
一般情况下依赖注入是静态属性,对应声明和导入即可。响应式通过一个函数进行放回值并做类似于劫持处理
模仿react中的全局上下文,无论层级多深都可以进入
vue中的插槽
v-slot 最开始解决父组件传入内容不确定,可能是text,html,组件等,便于解析,提前占位。如果无其他内容就就进行显示,否则就进行替换。 简写形式 v-slot: 替换成 # 命名插槽 ,对应名字进行传递
插槽作用域 v-slot:插槽名='传入的数据' 可以对应解构出内容
动态组件conmponent
官方封装的组件 component 可以配合is使用 ,但是有缺点无法进行数据的一个缓存,会重新挂载和卸载。解决方法 keep-alive 包裹 component
会多两个生命周期 ,activated 和 deactivated 。增加keep-alive缓存条件 include包含,exclude不包含 ,max最大缓存数
混入mixin
将公共部分的代码进行一个提取,分为全局混入和局部混入。与被混入的组件存在相同属性的时候会以组件内部的属性优先,生命周期钩子函数则会合并都会触发。 全局混入,直接在Vue.mixin中进行注册
局部混入,对应组件引入
自定义指令
Vue-directive('指令名',配置项{})
重要的两个钩子函数, inserted(el,binding) 可以拿到绑定的dom节点 el ,binding数据对象包括一些参数name指令名,value绑定值,oldValue绑定的前一个值等,update更新.
第二个参数可以简写成回调函数 参数也是el,binding。 更新和挂载都会触发。如果功能一样可以写
路由导航
声明式导航 可以对应path和name进行跳转
一般path 可以在路由配置的添加需要的动态字段 以/:标记 ,页面跳转的时候可以直接写路经后面。目标页面取数据$route.query.参数名
name进行跳转是params进行数据传递
嵌套路由,children里面配置用来配置二级,三级路由等
编程式导航 基于浏览器的history的api方法 push,replace,go等方法
命名路由就是另外一种匹配方式 name匹配,但是url上面显示的还是path路径
命名视图 可以组件嵌套 ,外面是大组件里面是配套的小组件 components匹配 名字 (router-view)
重定向 redirect 可以是替换掉路径,也可以是重定向去其他页面
别名 url显示是用户访问页面,但是实际显示是配置的路径页面
路由导航守卫 全局前置,全局解析,全局后置,路由独享,路由进入,路由更新,路由离开
一般是有三个参数 to,from,next 类似于node的express的中间件。从哪来,去哪里,是否通过 。
如果判断过程中为false就不会通过,可以实现判断是否进行登录了
注意的是beforeEnterRouter 路由进入 没有this。
路由元信息 meta 直接配置在每一个路由信息中的
可以实现效果有 : 判断是否有放回按键 ,顶部标题栏显示的内容 等等