vue的runtime


前言

我在当初学习vue的时候,就有一个问题,那就是什么是runtime?在看学习视频的时候,就总能听到什么runtime版本,compiler版本,巴拉巴拉的。。。
今天我就好好的查了一下,到底什么是runtime,什么是compiler!
在此记录一下!


一、runtime

首先,runtime翻译过来就是运行时,在我找到的许多资料里显示,runtime版本没有编译器,不能使用template,只能使用render函数来渲染。但是有一件事是,我们用的时候是使用了template了啊,那也没有报错啊
那是因为runtime版本里,配合使用了vue-loader,在webpack打包时,利用vue-loader来将template转化为了render函数
其次,因为没有编译器,所以runtime版本她体积小啊,适合浏览器更快的加载使用,而且vue默认使用runtime版本的

二、compiler

compiler版本翻译过来就是编译器,带有编译器的版本,可以使用template,编译器会把template转化为html
由于带有编译器,体积就变大了,当然加载起来就会变慢
但是有一个疑问了,既然平时写vue的时候,是默认用runtime版的,而且也能使用template,那什么场景适用于使用编译器版本呢?
常用于cdn引入模式,这种模式由于需要解析模板,所以需要引入完整版的vue
总之一句话,需要编译器进行解析模版的地方就使用compiler版本,不需要的就使用runtime版本

总结

总结一下:
1、runtime版本没有编译器
2、runtime版本比compiler版本体积小
3、runtime版本时vue默认版本
4、runtime版本本来不能使用template,但是由于使用webpack打包,所以配合vue-loader,将template转化为html
5、可以自己指定到底使用哪个版本,按需使用

### 关于 `vue-runtime-template` 组件 #### 功能概述 `vue-runtime-template` 是一个用于动态编译模板字符串并将其渲染到页面中的 Vue 组件。该组件允许开发者通过类似于 `v-html` 的方式来处理 HTML 字符串,但不同的是它能够解析完整的 Vue 模板语法,支持指令、插槽等功能[^1]。 #### 安装与引入 为了使用此组件,在项目中可以通过 npm 或 yarn 进行安装: ```bash npm install v-runtime-template --save ``` 或者 ```bash yarn add v-runtime-template ``` 接着可以在项目的入口文件或其他合适的地方全局注册这个组件: ```javascript import Vue from 'vue'; import VRuntimeTemplate from "v-runtime-template"; Vue.component('v-runtime-template', VRuntimeTemplate); ``` #### 基本用法 当需要在一个已经存在的 DOM 结构内动态加载新的 Vue 模板时,可以利用 `<v-runtime-template>` 来实现这一点。下面是一个简单的例子展示如何定义和应用这样的模板: ```html <template> <div id="app"> <!-- 使用自定义属性 :template 将模板字符串传递给子组件 --> <v-runtime-template :template="dynamicTemplate"></v-runtime-template> </div> </template> <script> export default { data() { return { dynamicTemplate: ` <p>这是一个来自变量的动态模板。</p> <button @click="handleClick">点击这里触发事件处理器</button>` }; }, methods: { handleClick(event) { alert("按钮被点击!"); } } }; </script> ``` 在这个案例里,`dynamicTemplate` 变量包含了要显示的内容以及绑定的一个点击事件监听器。一旦数据更新,新版本的模板就会自动重新编译并呈现出来。 #### 工作机制 `vue-runtime-template` 接收传入的模板字符串作为输入参数,并调用了内部的方法去创建一个新的临时性的 Vue 实例来进行局部范围内的编译工作。这使得即使是在运行期间也可以安全地修改视图结构而不必担心影响其他部分的状态管理逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值