打工人记录

70 阅读3分钟

我正在参加「掘金·启航计划」

回顾昨日学习

依赖注入的响应式处理

`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: 替换成 # 命名插槽 ,对应名字进行传递

图片.png 插槽作用域 v-slot:插槽名='传入的数据' 可以对应解构出内容

图片.png

动态组件conmponent

官方封装的组件 component 可以配合is使用 ,但是有缺点无法进行数据的一个缓存,会重新挂载和卸载。解决方法 keep-alive 包裹 component

图片.png

会多两个生命周期 ,activated 和 deactivated 。增加keep-alive缓存条件 include包含,exclude不包含 ,max最大缓存数

混入mixin

将公共部分的代码进行一个提取,分为全局混入和局部混入。与被混入的组件存在相同属性的时候会以组件内部的属性优先,生命周期钩子函数则会合并都会触发。 全局混入,直接在Vue.mixin中进行注册

图片.png

局部混入,对应组件引入

图片.png

自定义指令

Vue-directive('指令名',配置项{})

重要的两个钩子函数, inserted(el,binding) 可以拿到绑定的dom节点 el ,binding数据对象包括一些参数name指令名,value绑定值,oldValue绑定的前一个值等,update更新.

第二个参数可以简写成回调函数 参数也是el,binding。 更新和挂载都会触发。如果功能一样可以写

图片.png

图片.png

路由导航

声明式导航  可以对应path和name进行跳转  

            一般path 可以在路由配置的添加需要的动态字段 以/:标记  ,页面跳转的时候可以直接写路经后面。目标页面取数据$route.query.参数名

            name进行跳转是params进行数据传递

            嵌套路由,children里面配置用来配置二级,三级路由等

编程式导航  基于浏览器的history的api方法  push,replace,go等方法

blog.csdn.net/coinisi_li/…

命名路由就是另外一种匹配方式  name匹配,但是url上面显示的还是path路径  

命名视图  可以组件嵌套  ,外面是大组件里面是配套的小组件  components匹配 名字  (router-view)

图片.png

重定向 redirect 可以是替换掉路径,也可以是重定向去其他页面

图片.png

别名 url显示是用户访问页面,但是实际显示是配置的路径页面

图片.png

路由导航守卫 全局前置,全局解析,全局后置,路由独享,路由进入,路由更新,路由离开

一般是有三个参数 to,from,next 类似于node的express的中间件。从哪来,去哪里,是否通过 。

如果判断过程中为false就不会通过,可以实现判断是否进行登录了

注意的是beforeEnterRouter 路由进入 没有this。

路由元信息 meta 直接配置在每一个路由信息中的

图片.png

可以实现效果有 : 判断是否有放回按键 ,顶部标题栏显示的内容 等等