Runtime-Compiler 和 Runtime-only 的区别

Runtime-Compiler:

template -> ast(抽象语法树) -> render -> visual Dom -> UI

import Vue from 'Vue'
import App from './App'   // App 为创建的.vue文件,表示App组件

new Vue({
    el: '#app',
    template: '</app>',
    components: { App }
})
Runtime-only:

render -> visual Dom -> UI

import Vue from 'Vue'
import App from './App'   // App 为创建的.vue文件,表示App组件

new Vue({
    el: '#app',
    render: h => h(App)
})

箭头函数等同于:

render: function(h) ({
        return h(App)
    })
即Runtime-Compiler 相比于Runtime-only 多了一个 “template -> ast” 的过程,所以 Runtime-only 性能更高,代码量更少。
Runtime-Compiler模式中,也可以直接使用 render 函数,省略掉 “template -> ast” 这个过程:
new Vue({
    el: '#app',
    render: function (creatElement) {
        return creatElement(App)
    }
})
虽然App.vue 文件中也存在 “template”, 但是其最终编译的时候,所有“template”都已经被渲染成一个 “render” 函数了,在调用App 时,其中已经不存在 “template” 元素了。那么, .vue文件中的template 是由谁处理的呢?
vue-template-compiler
若需要正确加载.vue文件,需安装 “vue-loader” 和 “vue-template-compiler”
npm vue-loader vue-template-compiler --save-dev
总结:

1.若在之后的开发中,依然使用 “template” ,就需要选择 Runtime-Compiler
2. 若在之后的开发中,使用的是 “.vue” 文件夹开发,则可以选择Runtime-only

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值