浏览器渲染原理 为了避免连续的多次操作导致布局树反复计算,浏览器合并这些操作,当JS代码全部完成后再进行统一计算,所以,改动属性造成的reflow是异步完成的,也同样因为如此,当JS获取布局属性时,就可能造成无法获取到最新的布局信息。如果主线程解析到位置,此时外部的CSS文件还没有下载解析好,主线程不会等待,继续解析后续的HTML,这是因为下载和解析CSS的工作是在预解析线程中进行的,这就是CSS不会阻塞HTML,解析的根本。,浏览器的默认样式,内部样式,外部样式,行内样式均会包含在CSSOM树中。
防抖和节流 lodash插件:里面封装了函数的防抖和节流业务(闭包,延时器):前面所有的出发都被取消最后一次出发在规定时间后才会触发,:在规定时间内不会重复触发回调,将频繁触发降为少量触发。也就是说如果连续快速触发,只有最后一次才会执行。
编程式路由跳转到当前路由时多次执行会抛出NavigationDuplicated的错误解决方法 解决方法1:通过push方法传递相应的成功和失败的同调函数可以捕获到当前的错误,但是这种方法治标不治本,不建议采用。错误原因: “vue-router”:“^3.5.3”:最新的vue-router引入promise。编程式路由跳转到当前路由时多次执行会抛出NavigationDuplicated的错误。不同点:call传递参数用逗号隔开,apply方法执行时传递数组。相同点:都可以调用函数一次,都可以篡改函数的上下文。解决方法2:重写push方法。
路由跳转传参知识点和相关面试题 ---如果配置路由的时候params参数已经占位了,那么不传递params参数就会导致url有问题,在配置路由的时候,在占位的后面加上一个问号表示params可传或不传。---- 答:不能,路由传参的时候对象的写法可以使name,path形式,但是path不能和params参数一起使用。对象写法:额外的给路由组件传递一些props : props:{a:1,b:2}函数写法:可以params参数,query参数,通过props传递给路由组件。----使用undefind。
路由组件和非路由组件的区别 1.路由组件一般放置在pages或views文件夹,非路由组件一般放置在components文件夹。注册完路由,不管是路由组件还是非路由组件都有$route和 $router属性。2.路由组件一般需要在router文件夹中进行注册(使用的就是组建的名字)$router一般进行编程式导航进行路由跳转【push|replace】$route 一般获取路由信息【路径|quary|param等】非路由组件在使用的时候一直都是以标签的形式使用。
学Vue3这一篇就够了! Vue是一套用于构建用户界面的渐进式框架(渐进式框架允许用最小的配置和功能逐渐添加更多的功能和插件)Vue 组件非常类似于自定义元素——它是 Web 组件规范的一部分,这是因为 Vue 的组件语法部分参考了该规范。例如 Vue 组件实现了 Slot API 与 is attribute.虽然 Vue 内部没有使用自定义元素,不过在应用使用自定义元素、或以自定义元素形式发布时,依然有很好的互操作性。Vue CLI 也支持将 Vue 组件构建成为原生的自定义元素。
ES6学习笔记 ES6 提供了一个新的创建对象的语法,使用关键字 class。值得注意的是,class 只是一个语法糖,它并不像 Java、Python 或者 Ruby 这一类的语言一样,严格履行了面向对象的开发规范。在 ES5 里面,我们通常会定义一个函数 constructor,然后使用 new 关键字来实例化一个对象。在 ES6 里,class 声明有一个 constructor 方法,与 new 关键字一起被调用。如果 constructor 方法没有明确定义,那么它就被含蓄地定义为没有参数。");