• 渲染器的设计


    渲染器是Vue.js 中非常重要的一部分。在 Vue.js 中,很多功能依赖渲染器来实现,例如 Transition 组件、Teleport 组件、Suspense 组件,以及 template ref 和自定义指令等。

    另外,渲染器也是框架性能的核心,渲染器的实现直接影响框架的性能。Vue.js 3 的渲染器不仅仅包含传统的 Diff 算法,它还独创了快捷路径的更新方式,能够充分利用编译器提供的信息,大大提升了更新性能。

    渲染器的代码量非常庞大,需要合理的架构设计来保证可维护性,不过它的实现思路并不复杂。接下来,我们就从讨论渲染器如何与响应系统结合开始,逐步实现一个完整的渲染器。

    7.1、渲染器与响应系统的结合

    顾名思义,渲染器是用来执行渲染任务的。在浏览器平台上,用它来渲染其中的真实 DOM 元素。渲染器不仅能够渲染真实DOM 元素,它还是框架跨平台能力的关键。因此,在设计渲染器的时候一定要考虑好可自定义的能力。

    本节,我们暂时将渲染器限定在 DOM 平台。既然渲染器用来渲染真实 DOM 元素,那么严格来说,下面的函数就是一个合格的渲染器:

    01 function renderer(domString, container) {
    02   container.innerHTML = domString
    03 }
    
    • 1
    • 2
    • 3

    我们可以如下所示使用它:

    01 renderer('

    Hello

    '
    , document.getElementById('app'))
    • 1

    如果页面中存在 id 为 app 的 DOM 元素,那么上面的代码就会将

    hello

    插入到该 DOM 元素内。

    当然,我们不仅可以渲染静态的字符串,还可以渲染动态拼接的 HTML 内容,如下所示:

    01 let count = 1
    02 renderer(`

    ${count}

    `
    , document.getElementById('app'))
    • 1
    • 2
  • 相关阅读:
    C++ 核心指南之 C++ 哲学/基本理念(上)
    如何在ubuntu下安装任意版本python
    【Java 进阶篇】JSP EL 详解
    [HDLBits] Exams/2014 q3fsm
    golang之基础库
    社区治理进化史!拓世法宝化身“虚拟社工”,点亮智能社区的每一个角落
    动态导出word
    SQL 教程||SQL 简介
    外包干了20天,技术退步明显......
    Elastic Search6.8.0安装
  • 原文地址:https://blog.csdn.net/YYBDESHIJIE/article/details/134517473