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

石家庄市住房和城乡建设局官方网站深圳建网站好的公司

石家庄市住房和城乡建设局官方网站,深圳建网站好的公司,五金 东莞网站建设,成品软件网站大全推荐一、vue篇章 1.vue2和vue3性能方面的提升最主要的原因是什么#xff1f; 1、1响应式的系统优化#xff1a; vue3使用了es6的proxy对象来实现响应式系统#xff0c;取代了vue2中基于Object.defineProperty的方法。Proxy提供了更强大和灵活的拦截能力#xff0c;可以更有效地…一、vue篇章 1.vue2和vue3性能方面的提升最主要的原因是什么 1、1响应式的系统优化 vue3使用了es6的proxy对象来实现响应式系统取代了vue2中基于Object.defineProperty的方法。Proxy提供了更强大和灵活的拦截能力可以更有效地追踪数据变化并且能够处理数组和对象的变化侦测问题而不需要深度遍历整个对象树。 1、2编译器优化 Vue 3 引入了静态树提升Static Tree Hoisting技术它可以在编译阶段识别出哪些节点是静态的从而在渲染时直接复用这些节点避免了不必要的创建和销毁。 Vue 3 的模板编译器也进行了升级生成的代码更加高效减少了运行时的开销。 1、3Diff算法优化 Vue 3 通过引入PatchFlag标记只对带有PatchFlag的动态节点进行对比而不是像Vue 2那样全量比较虚拟DOM树。这样可以减少不必要的DOM更新操作提高渲染效率。 1、4事件绑定缓存 Vue 3 可以缓存事件处理器如果发现是相同的函数则可以直接复用而不是每次都重新绑定从而节省了内存和CPU资源。 1、5Composition API Composition API 不仅提高了代码的组织性和可读性还允许开发者更好地控制依赖关系进而可能带来更好的性能优化空间。 1、6服务器端渲染SSR改进 在处理大量静态内容时Vue 3 的SSR机制可以将这些内容直接作为纯字符串输出到缓冲区甚至使用内联HTML来代替创建虚拟DOM节点这对于大规模静态内容的应用来说可以极大地提高渲染速度。 2.说一下vue 原型和原型链 在JavaScript中每个对象都有一个内部属性[[Prototype]]通常可以通过__proto__属性访问到虽然这不是标准属性但被大多数浏览器支持。这个[[Prototype]]指向另一个对象称为原型。当试图访问一个对象的属性时如果该对象本身没有这个属性JavaScript引擎会沿着原型链向上查找直到找到该属性或到达原型链的末端即null。 Vue 原型 Vue.prototype这是所有Vue实例共享的原型对象。当你创建一个新的Vue实例时这个实例将继承Vue.prototype上的所有属性和方法。这意味着你可以在Vue.prototype上添加方法或属性然后这些方法或属性就可以被所有的Vue实例所使用。 Vue 原型链 Vue 实例的原型链当你创建一个Vue实例时它的原型是Vue.prototype。而Vue.prototype本身也是一个对象它也有自己的原型最终追溯到Object.prototype形成了一个原型链。 Vue实例.proto 指向 Vue.prototype Vue.prototype.proto 指向 Object.prototype Object.prototype.proto 是 null表示原型链的终点 VueComponent 原型链组件也是Vue实例的一种但是它们有一个特殊的构造函数VueComponent。VueComponent的原型继承自Vue的原型因此组件实例能够访问到Vue.prototype上的属性和方法。 VueComponent实例.proto 指向 VueComponent.prototype VueComponent.prototype.proto 指向 Vue.prototype Vue.prototype.proto 指向 Object.prototype Object.prototype.proto 是 null 3.说一下Promise假如在处理问题的过程中中间的一个突然出现问题了还会往下走吗 在使用 Promise 处理异步操作时如果链中的某个 Promise 被拒绝即调用了 reject 或者发生了错误那么默认情况下这个错误会传递给链中的下一个 .catch 方法。如果没有 .catch 方法来处理这个错误那么整个 Promise 链就会终止并且错误会被抛出不会继续执行后续的 .then 回调。 因此当 Promise 链中的一个环节出现错误时除非有适当的错误处理机制比如通过 .catch否则链条将不会继续执行后续的操作。如果有适当的错误处理并且在处理函数中返回了值或 Promise那么链条可以在处理完错误后继续执行。 二、js篇章 1.说一下event loop console.log(‘Script start’); setTimeout(() { console.log(‘setTimeout’); }, 0); Promise.resolve().then(() { console.log(‘Promise 1’); }).then(() { console.log(‘Promise 2’); }); console.log(‘Script end’); 在这个例子中输出顺序将是 深色版本 Script start Script end Promise 1 Promise 2 setTimeout 解释 “Script start” 和 “Script end” 是同步代码直接执行。 setTimeout 被安排为一个宏任务即使延迟时间为 0也会等到当前调用栈清空并且所有微任务完成后才被执行。 Promise.resolve().then() 创建了两个微任务这两个微任务会在当前宏任务结束前立即执行。 总结先同步 然后是 微任务 最后是宏任务 三、React 篇章 1.useState和 useReduce的区别 useState 用途useState 是最基础的状态管理 Hook适用于简单的状态逻辑。 使用方法通过调用 useState你可以定义一个 state 变量并返回一个包含当前状态值和更新该状态值的方法setter的数组。 适用场景当你的状态逻辑比较简单只涉及直接设置新值时useState 就足够了 useReducer 用途useReducer 更适合处理复杂的、多步骤的状态逻辑尤其是当状态依赖于前一个状态或者需要触发多个子状态更新时。 使用方法useReducer 接受一个 reducer 函数和初始状态作为参数。reducer 函数会根据不同的 action 来决定如何更新状态。 适用场景当应用状态逻辑比较复杂涉及到多种事件类型和状态变化时使用 useReducer 可以使代码更清晰、更具可维护性。它也是实现“状态机”模式的好方法可以用来替代多个 useState 调用。 总结 useState 适用于简单且独立的状态变更。 useReducer 适用于更复杂的状态逻辑特别是当状态更新涉及多个子属性或需要基于前一状态进行计算时。此外useReducer 还有利于将状态更新逻辑集中在一个地方便于管理和测试。 2.react 虚拟dom的特点和你认为的缺点 虚拟 DOM 的特点 高效的更新 当组件的状态发生变化时React 会先在内存中构建一个新版本的虚拟 DOM。 然后React 通过比较新旧两个虚拟 DOM 的差异Diffing 算法计算出最小的一组变更操作称为 Reconciliation。 最后React 将这些变更应用到真实 DOM 上从而减少了直接操作真实 DOM 的次数提升了渲染性能。 跨平台兼容性 由于虚拟 DOM 是一个抽象层它可以在不同平台上实现比如浏览器中的 HTML DOM 或者移动设备上的原生 UI 组件如 React Native。 这使得开发者可以使用相同的代码库来构建跨平台的应用程序。 声明式编程模型 虚拟 DOM 让开发者能够以声明式的方式编写 UI 代码描述 UI 应该是什么样子而不是如何改变它。 这种方式简化了状态管理和副作用处理使得代码更加清晰易懂。 更好的开发体验 由于虚拟 DOM 在内存中进行操作因此可以在不刷新整个页面的情况下快速更新 UI。 此外React DevTools 可以利用虚拟 DOM 来提供更强大的调试功能帮助开发者更好地理解组件树和状态变化。 虚拟 DOM 的潜在缺点 额外的内存消耗 虽然虚拟 DOM 比真实的 DOM 更小但维护一个完整的虚拟 DOM 树仍然需要占用一定的内存空间。 对于非常大的应用程序来说这可能会成为一个问题特别是在低内存设备上运行时。 初次渲染开销 第一次渲染时React 需要创建整个虚拟 DOM 树这比直接操作真实 DOM 可能会慢一些。 不过随着后续更新时 Diffing 和 Patching 的高效这种初始开销通常会被后续的性能提升所抵消。 复杂性的增加 虚拟 DOM 引入了一层额外的抽象对于初学者来说可能需要更多时间去理解和掌握。 同时Diffing 算法虽然已经很优化但在某些特定情况下例如大量节点被重新排序它可能不如开发者手动优化那么高效。 过度优化的风险 开发者有时会过于关注虚拟 DOM 的性能优化而忽视了其他重要的方面比如代码可读性和维护性。 有时候简单的 key 属性设置不当或者不必要的重绘可能会导致性能问题需要开发者有一定的经验才能避免这些问题。
http://www.w-s-a.com/news/845164/

相关文章:

  • 天津公司网站建设公司哪家好网站建设评估
  • 猪八戒网网站建设wordpress建网 打不开
  • 廊坊网站排名优化报价自学网站建设和seo
  • 摄影网站开发背景vs2012做网站
  • 网站建设空间使用标准沈阳网站建设招标公司
  • 网站流量怎么做的成都山而网站建设公司
  • 天河区网站建设公司爱站网排名
  • 怎样开发设计网站建设博物馆网页设计案例
  • 山西建设厅网站查不了seo搜索引擎优化包邮
  • 临沂网站建设价格太原网站优化公司
  • 网页设计基础课程设计搜索引擎优化英文
  • 网站备案号怎么查楼书设计素材网站
  • 网站设计机构有哪些中国建设银行网站登录不上
  • 烟台理工学校网站罗湖建设网站
  • 卑鄙的网站开发公司郑州人才网站
  • 成都专业的网站设计公司文化建设的成就
  • 做书籍封皮的网站如何建网站教程视频
  • 唐山建站公司模板ipfs做网站
  • 贵阳做网站品牌网站模板
  • 紫网站建设我的个人博客
  • 优秀网站菜单网页上的视频怎么下载
  • 龙口建网站公司价格国内的平面设计网站
  • 电子商务网站建设与管理读后感上海市基础工程公司
  • 织梦免费企业网站做网站时,404网页如何指向
  • 摄影工作室网站源码百度为什么会k网站
  • 哪个网站有淘宝做图的素材网站分享做描点链接
  • 做哪个网站零售最好网站空间在哪里
  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到