最简洁的方式了解 Vue的渲染机制

大致的流程图,当然只有图并不易懂

当组件被初次渲染

第一步 从Vue的模板语法 ————> render函数
解释为什么需要render函数: template模板语法 里不仅仅有html语句,有命令,插值语法,判断,循环。 所以需要js语句来实现这些功能。

第二步 render函数生成 ——————> Vnode(虚拟节点)
在这里用到了with语法, 这里不详细说,可以深入理解一下 template。

第三步 Vnode——————> 真实节点

*以上看起来很简单,复杂在于非初次渲染的情况*

仔细想想当不是初次渲染的情况和以上有什么区别
我们都知道Vue的响应式原理(观察订阅者模式,实现数据劫持,双向绑定)
那么 data (或props)被改变时,由于插值语法理所当然组件会被再次渲染࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Vue渲染 HTML 有两种方式: 1. 使用 `v-html` 指令,将数据作为 HTML 插入到模板中: ```html <div v-html="htmlData"></div> ``` ```javascript export default { data() { return { htmlData: '<h1>Hello, World!</h1>' } } } ``` 注意:使用 `v-html` 可能会存在 XSS 攻击风险,因此需要对数据进行过滤和转义。 2. 使用 `{{}}` 插值表达式,将数据作为字符串插入到模板中: ```html <div>{{ htmlData }}</div> ``` ```javascript export default { data() { return { htmlData: '<h1>Hello, World!</h1>' } } } ``` 在上述代码中,`htmlData` 中的 HTML 标签会被浏览器解析为 HTML 元素,从而实现渲染。但是,这种方式只能渲染纯文本数据,不能渲染 HTML 元素。如果需要在插值表达式中渲染 HTML 元素,需要使用 Vue 的过滤器或自定义指令来实现。 ### 回答2: Vue 是一种流行的JavaScript 框架,用于构建用户界面,其中包括渲染 HTML。Vue使用了一种基于模板的语法,通过将数据和模板绑定在一起,实现了动态更新 HTML 的功能。 在Vue中,我们可以使用双大括号({{}})语法来插入动态的数据到HTML模板中。这些双大括号中的表达式会被Vue解析并渲染为具体的数据。可以将数据从Vue的组件传递到HTML模板中,然后Vue会根据这些数据自动更新页面上相关的部分。 除了插值表达式之外,Vue还提供了一些指令来操作HTML元素。例如,v-bind 指令可以将数据绑定到HTML元素的属性上,使得属性值可以动态更新。v-if 和 v-show 指令可以根据条件控制HTML元素的显示与隐藏。v-for 指令可以根据数据循环渲染多个HTML元素。 另外,Vue还提供了组件化的思想,可以将页面划分为多个小的组件,每个组件有自己独立的HTML模板和数据。通过组件的方式,复用性增强,开发效率也提高了。 总之,Vue能够非常方便地实现HTML的渲染。无论是插值表达式还是指令,Vue都能够根据数据的变化实时地更新HTML页面,实现了动态的交互效果,提升了用户体验。 ### 回答3: Vue是一种流行的前端框架,它允许我们以声明式的方式构建用户界面。在Vue中,我们可以通过将数据和模板绑定在一起来动态地更新DOM。当数据发生变化时,Vue会自动重新渲染相关的DOM部分,从而实现了页面的响应式更新。 在Vue中,渲染HTML的方式有几种。首先,我们可以使用插值语法{{}}将数据绑定到HTML标签中。例如,我们可以在Vue实例中定义一个变量message,然后将其插入到HTML中的<p>标签中: ``` <div id="app"> <p>{{ message }}</p> </div> ``` 接下来,我们需要创建一个Vue实例,并将其挂载到一个DOM元素上: ``` new Vue({ el: "#app", data: { message: "Hello Vue!" } }) ``` 这样,Vue会自动将message的值渲染到DOM中的相应位置。当我们更新message的值时,Vue会自动重新渲染对应的DOM。 除了插值语法,我们还可以使用指令v-html来渲染HTML。v-html指令可以将一个字符串解析为HTML,并将其插入到DOM中的相应位置。但是要注意,为了防止XSS攻击,Vue会对插入的HTML内容进行转义处理。 例如,我们可以将一个包含HTML标签的字符串绑定到一个<div>标签上: ``` <div id="app"> <div v-html="htmlContent"></div> </div> ``` 然后,在Vue实例中定义一个变量htmlContent,将包含HTML标签的字符串赋值给它: ``` new Vue({ el: "#app", data: { htmlContent: "<p>This is a <strong>bold</strong> text.</p>" } }) ``` 这样,Vue会将htmlContent中的字符串解析为HTML,并将其渲染到DOM中的对应位置。 总之,Vue提供了多种方式渲染HTML,包括插值语法和v-html指令。这些机制使得我们能够动态地更新页面内容,让用户界面更加强大和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值