当前位置: 首页 > news >正文

外贸做那种网站郑州众诚建设监理有限公司网站

外贸做那种网站,郑州众诚建设监理有限公司网站,中介房产cms,合肥有哪些seo网络公司文章目录 一、设计目标1.1 更小1.2 更快1.3更友好 二、优化方案2.1 源码2.11源码管理2.22 TypeScript 2.2 性能2.3 语法 API2.31逻辑组织2.32 逻辑复用 参考文献 一、设计目标 不以解决实际业务痛点的更新都是耍流氓#xff0c;下面我们来列举一下Vue3之前我们或许会面临的问… 文章目录 一、设计目标1.1 更小1.2 更快1.3更友好 二、优化方案2.1 源码2.11源码管理2.22 TypeScript 2.2 性能2.3 语法 API2.31逻辑组织2.32 逻辑复用 参考文献 一、设计目标 不以解决实际业务痛点的更新都是耍流氓下面我们来列举一下Vue3之前我们或许会面临的问题 随着功能的增长复杂组件的代码变得越来越难以维护缺少一种比较「干净」的在多个组件之间提取和复用逻辑的机制类型推断不够友好bundle的时间太久了 而 Vue3 经过长达两三年时间的筹备做了哪些事情 我们从结果反推 更小更快TypeScript支持API设计一致性提高自身可维护性开放更多底层功能 一句话概述就是更小更快更友好了 1.1 更小 Vue3移除一些不常用的 API 引入tree-shaking可以将无用模块“剪辑”仅打包需要的使打包的整体体积变小了 1.2 更快 主要体现在编译方面 diff算法优化静态提升事件监听缓存SSR优化 下篇文章我们会进一步介绍 1.3更友好 vue3在兼顾vue2的options API的同时还推出了composition API大大增加了代码的逻辑组织和代码复用能力 这里代码简单演示下 存在一个获取鼠标位置的函数 import { toRefs, reactive } from vue; function useMouse(){const state reactive({x:0,y:0});const update e{state.x e.pageX;state.y e.pageY;}onMounted((){window.addEventListener(mousemove,update);})onUnmounted((){window.removeEventListener(mousemove,update);})return toRefs(state); }我们只需要调用这个函数即可获取x、y的坐标完全不用关注实现过程 试想一下如果很多类似的第三方库我们只需要调用即可不必关注实现过程开发效率大大提高 同时VUE3是基于typescipt编写的可以享受到自动的类型定义提示 二、优化方案 vue3从很多层面都做了优化可以分成三个方面 源码性能语法 API 2.1 源码 源码可以从两个层面展开 源码管理TypeScript 2.11源码管理 vue3整个源码是通过 monorepo的方式维护的根据功能将不同的模块拆分到packages目录下面不同的子目录中 这样使得模块拆分更细化职责划分更明确模块之间的依赖关系也更加明确开发人员也更容易阅读、理解和更改所有模块源码提高代码的可维护性 另外一些 package比如 reactivity 响应式库是可以独立于 Vue 使用的这样用户如果只想使用 Vue3的响应式能力可以单独依赖这个响应式库而不用去依赖整个 Vue 2.22 TypeScript Vue3是基于typeScript编写的提供了更好的类型检查能支持复杂的类型推导 2.2 性能 vue3是从什么哪些方面对性能进行进一步优化呢 体积优化编译优化数据劫持优化 这里讲述数据劫持 在vue2中数据劫持是通过Object.defineProperty这个 API 有一些缺陷并不能检测对象属性的添加和删除 Object.defineProperty(data, a,{get(){// track},set(){// trigger} })尽管Vue为了解决这个问题提供了 set和delete实例方法但是对于用户来说还是增加了一定的心智负担 同时在面对嵌套层级比较深的情况下就存在性能问题 default {data: {a: {b: {c: {d: 1}}}} }相比之下vue3是通过proxy监听整个对象那么对于删除还是监听当然也能监听到 同时Proxy 并不能监听到内部深层次的对象变化而 Vue3 的处理方式是在getter 中去递归响应式这样的好处是真正访问到的内部对象才会变成响应式而不是无脑递归 2.3 语法 API 这里当然说的就是composition API其两大显著的优化 优化逻辑组织优化逻辑复用 2.31逻辑组织 一张图我们可以很直观地感受到 Composition API在逻辑组织方面的优势 相同功能的代码编写在一块而不像options API那样各个功能的代码混成一块 2.32 逻辑复用 在vue2中我们是通过mixin实现功能混合如果多个mixin混合会存在两个非常明显的问题命名冲突和数据来源不清晰 而通过composition这种形式可以将一些复用的代码抽离出来作为一个函数只要的使用的地方直接进行调用即可 同样是上文的获取鼠标位置的例子 import { toRefs, reactive, onUnmounted, onMounted } from vue; function useMouse(){const state reactive({x:0,y:0});const update e{state.x e.pageX;state.y e.pageY;}onMounted((){window.addEventListener(mousemove,update);})onUnmounted((){window.removeEventListener(mousemove,update);})return toRefs(state); }组件使用 import useMousePosition from ./mouse export default {setup() {const { x, y } useMousePosition()return { x, y }} }可以看到整个数据来源清晰了即使去编写更多的hook函数也不会出现命名冲突的问题 参考文献 https://juejin.cn/post/6850418112878575629#heading-5https://vue3js.cn/docs/zh
http://www.zqtcl.cn/news/333090/

相关文章:

  • 宠物店网站开发文档撰写洛阳市河阳建设工程有限公司网站
  • 毕业设计做网站应该学什么wordpress调用子分类
  • 怎么建网站做淘宝客用国外网站 图片做自媒体
  • 汕头建站模板搭建怎么制作有效网站
  • 学生个人网站作品怎么wordpress用的什么主题
  • 设计logo网站侵权吗知乎一键做单页网站
  • 网站服务器有什么用做视频网站视频存放问题
  • 影评网站建设可以免费发布招聘网站
  • 富阳做兼职的网站正邦设计上海分公司
  • 网站漏洞解决办法投资
  • wordpress网站如何网页设计实训总结3000字大学篇
  • 用ps怎么做网站导航条wordpress 开启缩略图
  • 网上销售型的企业网站为什么要域名备案
  • 唐山网站建设方案优化国内酷炫网站
  • 国外网站备案吗网站做一样没有侵权吧
  • 谷歌怎么建网站ps中怎样做网站轮播图片
  • 汕头有没有做网站廊坊宣传片制作公司
  • 百度快速收录网站有些人做网站不用钱的 对吗
  • 如何规划一个网站网站建设预付费入什么科目
  • 北京做网站的好公司有哪些网站建设杭州缘择低价
  • 建设网站团队张掖响应式建站平台
  • 中国建设之乡是哪里网站优化连云港哪家强?
  • 网站建设报价是多少30号长沙封城最新消息
  • 常州专业网站建设费用电商推广技巧
  • 辽源市网站建设南通营销网站开发
  • 新站优化案例去韩国用什么地图导航
  • 宁波网站制作与推广WordPress怎么文章分类
  • mvc 做网站国内的搜索引擎有哪些
  • 设计视频网站腾讯云服务器网站域名备案
  • 网站建设费算费用还是固定资产镇赉县做网站的