Vue的两个版本

399 阅读1分钟

Vue 有两个版本,完整版(vue.js)和只包含运行时版本(vue.runtime.js)。两者关系可以简单认为是【完整版 = 运行时版本 + 编译器】。

完整版包含的编译器,可以将模板字符串编译成 JavaScript 渲染函数的代码。当我们使用完整版 Vue 时,可以将其写入 template,Vue 会自动将其转换并渲染到页面中

new Vue({
  remplate: '<div>{{ n }}</div>'
})

而运行时版必须将其写入 render 函数

new Vue({
  render (h) {
    return h('div', this.hi)
  }
})

虽然使用运行时版本更为麻烦,但运行时版本的体积比完整版大约小30%。为了用户体验,推荐总是使用运行时版本,webpack 和 @vue/cli 均默认使用运行时版。

不过在开发时,我们可以直接在 .vue 文件中写 HTML 的内容(不写 h 函数),然后使用 webpack 的 vue-loader 将 .vue 文件中的内容在构建时预编译成 h 函数。

//Demo.vue文件
<template>
  <div>{{n}}</div>
</template>

<script>
  export default {
    data(){
      return {
        n: 0
      }
    }
  }
</script>


//main.js文件
import Vue from 'vue'
import Demo from './Demo.vue'

new Vue({
  el: '#app',
  render(h){
     return h(Demo)
   }
})

Vue完整版Vue运行时版
特点包含compiler不含compiler
视图写在HTML中,或者写在template中写在render函数里,用h创建标签
cdn引入vue.jsvue.runtime.js
webpack引入需要配置alias默认使用
vue@cli引入需要额外配置默认使用