export default{} 和 new Vue()都是什么意思


在生成、導出、導入、使用 Vue 組件的時候,有些新手就會常常被位於不同文件的 new Vue() 和 export default{} 搞得暈頭轉向。它們含義到底是什么,又有什么異同呢?

首先,Vue 是什么? 我的理解是 Vue 就是一個構造函數,生成的實例是一個巨大的對象,可以包含數據、模板、掛載元素、方法、生命周期鈎子等選項。

所以渲染的時候,可以使用構造 Vue 實例的方式來渲染相應的 html 頁面:

new Vue({ el: '#app' ... })

那么 export default {} 又是來干嘛的?

這是在復用組件的時候用到的。假設我們寫了一個單頁面組件 A 文件,而在另一個文件 B 里面需要用到它,那么就要用 ES6 的 import/export 語法 ,在文件 A 中定義輸出接口 export **,在文件 B 中引入 import **,然后再生成一個 Vue 實例 new Vue (**),把引入的組件用起來,這樣就可以復用組件 A 去配合文件 B 生成 html 頁面了。

所以在復用組件的時候,export 和 new Vue 缺一不可。

======================================================================

export 用來導出模塊,Vue 的單文件組件通常需要導出一個對象,這個對象是 Vue 實例的選項對象,以便於在其它地方可以使用 import 引入。而 new Vue() 相當於一個構造函數,在入口文件 main.js 構造根組件的同時,如果根組件還包含其它子組件,那么 Vue 會通過引入的選項對象構造其對應的 Vue 實例,最終形成一棵組件樹。

  export 和export default 的區別在於:export 可以導出多個命名模塊,例如:

//demo1.js
export const str = 'hello world'

export function f(a){
    return a+1
}

  對應的引入方式:

//demo2.js
import { str, f } from 'demo1'

  export default 只能導出一個默認模塊,這個模塊可以匿名,例如:

//demo1.js
export default {
    a: 'hello',
    b: 'world'      
}

  對應的引入方式:

//demo2.js
import obj from 'demo1'

  引入的時候可以給這個模塊取任意名字,例如 "obj",且不需要用大括號括起來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM