当前位置: 首页 > Web前端 > HTML5

vue常用知识点总结

时间:2023-04-05 13:15:14 HTML5

感谢本文引用链接的各位大佬,我只是一个搬运工,菜鸟一枚1.说说你理解中的vue是什么样的?Vue是一个数据和视图分离的框架,让数据和视图之间没有直接的联系。MVVM组件化:将整体拆分成一个个可复用的个体数据驱动:通过数据变化直接影响bom展示,避免dom操作。在原有项目的基础上,可以对一两个组件使用vue,也可以使用vue全家桶开发全家桶:vue-router,vuex,vue-resource,vue-cli,sassstyle这篇文章讲解的很好吧关于progressivevue2必须知道的几个点。一张vue生命周期图概括了vue生命周期。注意创建时绑定数据,但不生成DOM,$el不存在,挂载时$el已经存在,可以挂载。这篇文章讲的很详细vue的生命周期,还有代码可以手动验证每个阶段textare等)添加change(input)事件动态修改model和view实现过程:实现一个数据监听Observer,可以监听数据对象的所有属性,如果有变化,可以获取最新的值,通知订阅者执行指令解析器Compile,扫描解析每个元素节点的指令,根据需要替换数据到指令模板,并绑定相应的update函数实现一个Watcher,作为连接Observer和Compile的桥梁,可以订阅和接收每一个属性变化的Notification,执行指令绑定的相应回调函数,从而更新视图mvvm入口函数,综合以上三点,我查大哥的文章1点,我查大哥的文章24.为什么虚拟DOM和声明式渲染要减少DOM操作,在哪里花在DOM操作上的时间?渲染引擎工作:解析HTML代码,产生DOM树,解析CSS样式,结合DOM树产生Render树(显示:无;Rendertree上不会存在节点,最终不会被绘制)计算每一个的布局信息Rendertree的节点,例如根据计算出的布局信息,调用浏览器的UI引擎渲染盒子的位置、大小、颜色、形状等。dom的操作会产生几个action,极大的影响渲染的效率。其中layout(布局)和paint(绘图)用量最大。layout是布局变化引起的重新计算(消耗CPU,有时也消耗内存)paint是调用浏览器UI引擎渲染显示页面(消耗CPU和内存)。参考这篇文章,写的很详细。VirtualDOM算法的步骤如下:使用JavaScript对象结构来表示DOM树的结构;然后用这棵树构建一个真正的DOM树,当状态改变时将它插入到文档中,重建一个新的对象树。然后将新树与旧树进行对比,记录两棵树的差异,将2中记录的差异应用到步骤1中构建的真实DOM树上,视图就会更新。如何理解虚拟DOM?-戴家华的回答-知乎虚拟DOM先用js模拟dom,主要用el然后比较虚拟dom树节点的差异,主要是用深度搜索比较两个虚拟树的差异使用diff算法,核心很深搜索,首先比较DOM树中每一层的不同点,标记不同点,然后用类似的动态规划求出最小编辑距离commandstepbyperformdeclarativerendering:我们只需要告诉程序我们想要什么效果,剩下的交给程序。这篇文章不仅有声明式渲染,还介绍了vue的基本内容。5、如何使用原生js做路由,在前端实现路由。实现方式有两种,一种是html5,一种是vue的hashhash路由,也就是常见的#号,这种方式比较兼容。切换页面:路由最大的作用就是切换页面。以前都是后台路由直接改页面的url方法提示页面刷新。但是前端路由无法通过#号刷新页面。它只能通过窗口的监听事件hashchange来监听hash的变化,然后抓取具体的hash值进行操作。手动下载js注册路由:我们需要将路由规则注册到页面中,这样在页面切换时效果会有所不同。异步加载js:一般单页应用为了性能优化,会把每个页面的文件拆分出来,按需加载,所以应该在路由中加入异步加载js文件的功能。对于异步加载,我们使用最简单的native方法,创建script标签,动态导入js。参数传递:我们动态导入一个单独模块的js后,可能需要给这个模块传递一些单独的参数。这里参考一下jsonp的处理方法。我们将单个模块的js封装成一个函数,提供一个全局的回调方法,加载完成后调用回调函数。过程:从这篇文章看,很详细。这也用作参考。代码比较简单,但与上一篇文章略有不同。6、vue中的组件通信非常通俗易懂。就是创建一个中央事件总线作为沟通的桥梁。使用bus.$emit在需要传递值的组件中触发自定义事件,并传递参数,使用bus.$on在需要接收数据的组件中监听自定义事件,并对传递的参数级别进行处理在回调函数中组件通信父子组件通信