跳轉到內容

快速入門

線上嘗試 Vue

  • 要快速體驗 Vue,您可以直接在我們的 Playground 中嘗試。

  • 如果您更喜歡一個沒有構建步驟的純 HTML 設定,您可以使用這個 JSFiddle 作為起點。

  • 如果您已經熟悉 Node.js 和構建工具的概念,您還可以在 StackBlitz 上嘗試一個完整的構建設定。

建立 Vue 應用

先決條件

  • 熟悉命令列
  • 安裝 Node.js 版本 18.3 或更高版本

在本節中,我們將介紹如何在本地機器上搭建 Vue 單頁應用。建立的專案將使用基於 Vite 的構建設定,並允許我們使用 Vue 單檔案元件 (SFC)。

請確保您已安裝最新版本的 Node.js,並且您當前的工作目錄是您打算建立專案的目錄。在您的命令列中執行以下命令(無需輸入 $ 符號)

npm
pnpm
yarn
bun
sh
$ npm create vue@latest

此命令將安裝並執行 create-vue,這是官方 Vue 專案腳手架工具。您將看到有關 TypeScript 和測試支援的幾個可選功能的提示

 Project name: <your-project-name>
 Add TypeScript? No / Yes
 Add JSX Support? No / Yes
 Add Vue Router for Single Page Application development? No / Yes
 Add Pinia for state management? No / Yes
 Add Vitest for Unit testing? No / Yes
 Add an End-to-End Testing Solution? No / Cypress / Nightwatch / Playwright
 Add ESLint for code quality? … No / Yes
 Add Prettier for code formatting? No / Yes
 Add Vue DevTools 7 extension for debugging? (experimental) No / Yes

Scaffolding project in ./<your-project-name>...
Done.

如果您對某個選項不確定,現在只需按 Enter 鍵選擇 。一旦建立專案,請按照說明安裝依賴項並啟動開發伺服器

npm
pnpm
yarn
bun
sh
$ cd <your-project-name>
$ npm install
$ npm run dev

現在您應該有一個執行的第一個 Vue 專案了!請注意,生成的專案中的示例元件是使用 Composition API<script setup> 編寫的,而不是使用 Options API。以下是一些額外的提示

當您準備好將應用程式部署到生產環境時,請執行以下命令

npm
pnpm
yarn
bun
sh
$ npm run build

這將建立一個位於專案 ./dist 目錄中的生產就緒版本的應用程式構建。有關將應用程式部署到生產的更多資訊,請檢視 生產部署指南

下一步 >

從CDN使用Vue

您可以直接透過script標籤從CDN使用Vue

html
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

這裡我們使用 unpkg,但您也可以使用任何提供npm包的CDN,例如 jsdelivrcdnjs。當然,您也可以下載此檔案並自行提供。

從CDN使用Vue時,不涉及“構建步驟”。這使得設定變得更加簡單,適合增強靜態HTML或與後端框架整合。但是,您將無法使用單檔案元件(SFC)語法。

使用全域性構建

上述連結載入了Vue的 全域性構建,其中所有頂級API都作為全域性 Vue 物件上的屬性暴露。以下是一個使用全域性構建的完整示例

html
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

<div id="app">{{ message }}</div>

<script>
  const { createApp } = Vue

  createApp({
    data() {
      return {
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>

CodePen演示 >

html
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

<div id="app">{{ message }}</div>

<script>
  const { createApp, ref } = Vue

  createApp({
    setup() {
      const message = ref('Hello vue!')
      return {
        message
      }
    }
  }).mount('#app')
</script>

CodePen演示 >

提示

指南中關於組合API的許多示例將使用 <script setup> 語法,這需要構建工具。如果您打算不使用構建步驟來使用組合API,請參閱 setup() 選項 的使用。

使用ES模組構建

在其餘的文件中,我們將主要使用 ES模組 語法。大多數現代瀏覽器現在原生支援ES模組,因此我們可以透過以下方式從CDN使用Vue

html
<div id="app">{{ message }}</div>

<script type="module">
  import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'

  createApp({
    data() {
      return {
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>
html
<div id="app">{{ message }}</div>

<script type="module">
  import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'

  createApp({
    setup() {
      const message = ref('Hello Vue!')
      return {
        message
      }
    }
  }).mount('#app')
</script>

注意,我們使用 <script type="module">,並且匯入的CDN URL指向Vue的 ES模組構建

啟用匯入對映

在上面的示例中,我們從完整的CDN URL匯入,但在其餘的文件中,您將看到類似這樣的程式碼

js
import { createApp } from 'vue'

我們可以透過使用 匯入對映 來教瀏覽器在哪裡找到 vue 的匯入

html
<script type="importmap">
  {
    "imports": {
      "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
    }
  }
</script>

<div id="app">{{ message }}</div>

<script type="module">
  import { createApp } from 'vue'

  createApp({
    data() {
      return {
        message: 'Hello Vue!'
      }
    }
  }).mount('#app')
</script>

CodePen演示 >

html
<script type="importmap">
  {
    "imports": {
      "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
    }
  }
</script>

<div id="app">{{ message }}</div>

<script type="module">
  import { createApp, ref } from 'vue'

  createApp({
    setup() {
      const message = ref('Hello Vue!')
      return {
        message
      }
    }
  }).mount('#app')
</script>

CodePen演示 >

您還可以將其他依賴項的條目新增到匯入對映中 - 但請確保它們指向您打算使用的庫的ES模組版本。

匯入對映瀏覽器支援

匯入對映是一個相對較新的瀏覽器功能。請確保在它的 支援範圍內 使用瀏覽器。特別是,它僅在Safari 16.4+上受支援。

生產使用注意事項

到目前為止的示例都使用了Vue的開發構建版本 - 如果您打算在生產環境中從CDN使用Vue,請確保檢視 生產部署指南

雖然可以在沒有構建系統的情況下使用Vue,但可以考慮的一種替代方法是使用 vuejs/petite-vue,這可能在某些場景下比使用 jquery/jquery(過去)或 alpinejs/alpine(現在)更合適。

模組拆分

隨著我們深入瞭解指南,我們可能需要將程式碼拆分為單獨的JavaScript檔案,以便更容易管理。例如

html
<!-- index.html -->
<div id="app"></div>

<script type="module">
  import { createApp } from 'vue'
  import MyComponent from './my-component.js'

  createApp(MyComponent).mount('#app')
</script>
js
// my-component.js
export default {
  data() {
    return { count: 0 }
  },
  template: `<div>Count is: {{ count }}</div>`
}
js
// my-component.js
import { ref } from 'vue'
export default {
  setup() {
    const count = ref(0)
    return { count }
  },
  template: `<div>Count is: {{ count }}</div>`
}

如果你直接在瀏覽器中開啟上面的 index.html,你會發現它丟擲一個錯誤,因為ES模組不能在 file:// 協議下工作,這是瀏覽器開啟本地檔案時使用的協議。

出於安全原因,ES模組只能在 http:// 協議下工作,這是瀏覽器開啟網頁時使用的協議。為了使ES模組在本地機器上工作,我們需要透過本地HTTP伺服器以 http:// 協議提供 index.html

要啟動本地HTTP伺服器,首先請確保已經安裝了 Node.js,然後在包含HTML檔案的同一目錄的命令列中執行 npx serve。您還可以使用任何其他能夠以正確的MIME型別提供靜態檔案的HTTP伺服器。

你可能已經注意到匯入的元件模板是以JavaScript字串的形式內聯的。如果你使用的是VS Code,你可以安裝 es6-string-html 擴充套件,並在字串前加上 /*html*/ 註釋,以獲得它們的語法高亮。

下一步

如果你跳過了 簡介,我們強烈建議你在繼續閱讀其他文件之前先閱讀它。

快速入門已載入