您好,登錄后才能下訂單哦!
vue2 經過 2.2 版本升級后, 文件變成了 8 個:
瞬間就懵逼了, 這些文件該怎么選?
下面就來說下, 這 8 個作用都用在什么場景, 有什么區別
按照構建方式分, 可以分成 完整構建(包含獨立構建和運行時構建) 和 運行時構建
按照規范分, 可以分成 UMD, CommonJS 和 ES Module
簡單來說, 完整構建 和 運行時構建的區別就是, 可不可以用template選項, 和文件大一點,小一點
vue.common.js
屬于: 基于 CommonJS 的完整構建
可以用于 Webpack-1 和 Browserify 之類打包工具
因為是完整構建, 所以可以使用template選項, 如:
import Vue from 'vue' new Vue({ template: ` <div id="app"> <h2>Basic</h2> </div> ` }).$mount('#app')
注意: 用 webpack-1 之類打包工具時, 使用該版本, 需要配置別名, 以 webpack 為例:
{ resolve: { alias: { 'vue$': 'vue/dist/vue.common.js' } } }
vue.esm.js
屬于: 基于 ES Module 的完整構建
可以用于 Webpack-2 和 rollup 之類打包工具
因為是完整構建, 所以可以使用template選項, 如:
import Vue from 'vue' new Vue({ template: ` <div id="app"> <h2>Basic</h2> </div> ` }).$mount('#app')
注意: 用 webpack-2 之類打包工具時, 使用該版本, 需要配置別名, 以 webpack 為例:
{ resolve: { alias: { 'vue$': 'vue.esm.js' } } }
vue.js
屬于: 基于 UMD 的完整構建
可以用于直接 CDN 引用
因為是完整構建, 所以可以使用template選項, 如:
<script src="https://unkpg.com/vue/dist/vue.js"></script> <script> new Vue({ template: ` <div id="app"> <h2>Hi Vue</h2> </div> ` }).$mount('#app') </script>
vue.min.js
和 vue.js 一樣, 屬于壓縮后版本
vue.runtime.common.js
屬于: 基于 CommonJS 的運行時構建
可以用于 Webpack-1 和 Browserify 之類打包工具
運行時構建不包含模板編譯器,因此不支持template選項,只能用render選項,但即使使用運行時構建,在單文件組件中也依然可以寫模板,因為單文件組件的模板會在構建時預編譯為render函數, render函數的使用, 請參考: http://cn.vuejs.org/v2/guide/render-function.html
import Vue from 'vue' new Vue({ render: function(h){ return h('h2', 'Hi Vue') } }).$mount('#app')
vue.runtime.esm.js
屬于: 基于 ES Module 的運行時構建
可以用于 Webpack-2 和 rollup 之類打包工具
運行時構建不包含模板編譯器,因此不支持template選項,只能用render選項,但即使使用運行時構建,在單文件組件中也依然可以寫模板,因為單文件組件的模板會在構建時預編譯為render函數, render函數的使用, 請參考: http://cn.vuejs.org/v2/guide/render-function.html
import Vue from 'vue' new Vue({ render: function(h){ return h('h2', 'Hi Vue') } }).$mount('#app')
vue.runtime.js
屬于: 基于 UMD 的運行時構建
可以用于直接 CDN 引用
該版本和vue.js類似, 可以用于直接 CDN 引用, 因為不包含編譯器, 所以不能使用template選項, 只能使用render函數
<script src="https://unkpg.com/vue/dist/vue.runtime.js"></script> <script> new Vue({ render: function(h){ return h('h2', 'Hi Vue') } }).$mount('#app') </script>
vue.runtime.min.js
和 vue.runtime.js 一樣, 屬于壓縮后版本
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。