EP2 - 創建 Vue App

更新於 2024/09/10閱讀時間約 1 分鐘
繼續看Document,練習到直到可以活用~
雖然我是實用派的~但還是要研究框架文件 @@

App實例 - application instance

每個 Vue 應用程式都會從使用 createApp 函數創建一個新的應用程式實例開始:

import { createApp } from 'vue'

const app = createApp({
/* 根組件選項 */
})

根組件 - Root Component

傳遞給 createApp 的對象實際上是一個組件。每個應用程式都需要一個「根組件」,這個根組件可以包含其他組件作為它的子組件。

如果你使用的是單檔組件 (Single-File Components),我們通常會從另一個文件中導入根組件:

import { createApp } from 'vue'
// 從單檔組件中導入根組件 App
import App from './App.vue'

const app = createApp(App)

雖然文件中的許多範例只需要一個組件,但大多數實際應用程式會被組織成一個由嵌套、可重用的組件構成樹狀結構。例如,一個 Todo 應用程式的組件樹可能如下所示:

App (根組件)
├─ TodoList
│ └─ TodoItem
│ ├─ TodoDeleteButton
│ └─ TodoEditButton
└─ TodoFooter
├─ TodoClearButton
└─ TodoStatistics

文件後續將討論如何定義和組合多個組件。在此之前,將專注於單個組件內部運作。

掛載App - Mounting the App

應用程式實例在調用其 .mount() 方法之前,不會渲染任何內容。.mount() 方法需要一個「容器」參數,這個參數可以是一個實際的 DOM 元素或是一個選擇器字符串:

<div id="app"></div>
app.mount('#app')

應用程式的根組件的內容將會渲染在這個容器元素內部,但容器元素本身並不被視為應用程式的一部分。

應該在完成所有應用程式配置和資源註冊後再調用 .mount() 方法。此外,請注意其返回值與資源註冊方法不同,是根組件實例而不是應用程式實例。

在 DOM 中的根組件模板

通常,根組件的模板是組件自身的一部分,但也可以單獨提供模板,直接將其寫在掛載容器內:

<div id="app"> 
<button @click="count++">{{ count }}</button>
</div>
import { createApp } from 'vue'

const app = createApp({
data() {
return {
count: 0
}
}
})

app.mount('#app')

如果根組件沒有模板選項,Vue 會自動使用容器的 innerHTML 作為模板。

在 DOM 中的模板通常用於無需構建步驟的 Vue 應用程式中。它們也可以與伺服器端框架結合使用,其中根模板可能由伺服器動態生成。

App配置 - App Configurations

應用程式實例(Application Instance)提供了一個 .config 物件,讓我們可以配置一些應用層級的選項。例如,定義一個應用層級的錯誤處理程序,捕獲所有後代組件中的錯誤:

app.config.errorHandler = (err) => {
/* handle error */
}

應用程式實例還提供了一些方法來註冊應用範圍資產(assets)。例如,註冊一個組件:

app.component('TodoDeleteButton', TodoDeleteButton)

這樣就使得 TodoDeleteButton 組件可以在應用的任何地方使用。文件後續章節中討論組件和其他類型資產的註冊。你也可以在 API 參考中瀏覽完整的應用程式實例 API 列表。確保在掛載應用程式之前應用所有的配置!

多個App實例 - Multiple application instances

在同一個頁面上,你不僅限於使用單個應用程式實例。createApp API 允許多個 Vue 應用程式共存於同一頁面上,每個應用程式都有自己的配置範圍和全局資產:

const app1 = createApp({
/* ... */
})
app1.mount('#container-1')

const app2 = createApp({
/* ... */
})
app2.mount('#container-2')

如果你使用 Vue 來增強伺服器渲染的 HTML,只需要 Vue 來控制大頁面中的特定部分,應避免在整個頁面上掛載單個 Vue 應用程式實例。相反,應創建多個小型應用程式實例,並將它們掛載到各自負責的元素上。

看完這章節好像有點懂又不太懂~@@~



avatar-img
2會員
71內容數
分享生活趣事~
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
卡關的人生 的其他內容
隨著AI工具的快速發展,學習新的程式語言變得更為簡便。這篇文章帶你瞭解如何使用Vue.js來建立單頁應用(SPA),並提供環境建置的詳細步驟,包括Node.js的安裝、使用NPM管理套件以及如何透過CDN簡化Vue的應用設置。
Vue是一個前端框架,發音如View,幫助你有效率地開發任何複雜性的使用者介面 由前Google工程師 尤雨溪(Evan You) 邊工作邊開發出來的開源框架,好厲害! 還在耍廢嗎?一起來學習吧~ 期待有朝一日能應徵上遠端工作 www ~ 下面的範例是什麼? // main.js 或 main.
隨著AI工具的快速發展,學習新的程式語言變得更為簡便。這篇文章帶你瞭解如何使用Vue.js來建立單頁應用(SPA),並提供環境建置的詳細步驟,包括Node.js的安裝、使用NPM管理套件以及如何透過CDN簡化Vue的應用設置。
Vue是一個前端框架,發音如View,幫助你有效率地開發任何複雜性的使用者介面 由前Google工程師 尤雨溪(Evan You) 邊工作邊開發出來的開源框架,好厲害! 還在耍廢嗎?一起來學習吧~ 期待有朝一日能應徵上遠端工作 www ~ 下面的範例是什麼? // main.js 或 main.
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
Quasar Dialog 的 Invoking custom component 很好用,但是有些困擾的地方,一起來看看有甚麼辦法吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
Quasar Dialog 的 Invoking custom component 很好用,但是有些困擾的地方,一起來看看有甚麼辦法吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找