官术网_书友最值得收藏!

2.2 Vue.js快速開發環境

本節主要介紹在Windows 10/11系統平臺下,如何通過普通的代碼編輯器搭建Vue.js框架的快速開發環境。

2.2.1 直接通過<script>引入本地Vue.js

Vue.js框架本質上還是一個JavaScript開發庫,因此仍舊可以直接通過<script>標簽引入本地的Vue.js文件,這也是最原始的開發方式。如果讀者打算使用該方式,就需要將Vue.js庫文件下載到本地。

首先,訪問Vue.js的中文官方網站(https://cn.vuejs.org/),在介紹“安裝”方法的頁面中可以找到Vue.js的庫文件。Vue.js庫文件包含兩個版本,分別是“開發版本”和“生產版本”。“開發版本”的下載地址為https://cdnjs.cloudflare.com/ajax/libs/vue/3.3.13/vue.cjs.js,該版本包含完整的警告信息和調試模式。“生產版本”的下載地址為https://cdnjs.cloudflare.com/ajax/libs/vue/3.3.13/vue.cjs.min.js,該版本刪除了相關警告信息(體積更小、運行更快),用于最終打包發布時使用。

提示:一般情況下,JavaScript庫文件為了區分“開發版本”和“生產版本”,會在“生產版本”的文件名中加入“min”字符串以示區別。

下面創建一個簡單的Vue單頁面文件,就是在HTML5頁面中直接引入Vue.js庫文件,在頁面中輸出一行簡單的歡迎信息(“Hello Vue.js!”),代碼如下:

【代碼2-1】(詳見源代碼hellovue目錄中的hellovue-script.html文件)

01  <!DOCTYPE html>
02  <html lang="en">
03  <head>
04    <meta charset="UTF-8">
05    <meta name="viewport" content="width=device-width, initial-scale=1.0">
06    <script src="vue.min.js"></script>
07    <title>Hello Vue.js</title>
08  </head>
09  <body>
10      <div id="app">
11          {{ message }}
12      </div>
13      <script>
14          var vApp = new Vue({
15              el: '#app',
16              data: {
17                  message: 'Hello Vue.js!'
18              }
19          })
20      </script>
21  </body>
22  </html>

【代碼說明】

· 在第06行代碼中,通過<script>標簽引入了本地的vue.min.js庫文件。

· 在第10~12行代碼中,通過<div>標簽定義一個分區元素及其id屬性值(id="app")。第11行代碼中的雙花括號({{ }})是Vue.js框架專用的模板語法(Mustache語法),雙花括號內的message為數據綁定對象。(后文中會對Vue.js語法專門進行系統的介紹)

· 第13~20行代碼定義的是Vue.js腳本語言,通過new Vue()構造函數實例化Vue對象,這是創建Vue對象的入口。具體內容如下:

? 第15行代碼通過el屬性綁定DOM元素("#app"),注意“#”前綴標識符的使用。

? 第16~18行代碼通過data屬性定義具體數據,第17行代碼定義的message屬性對應第11行代碼定義的數據綁定對象(message),從而實現將數據內容渲染到頁面中指定的DOM元素上。

在上面的代碼中,HTML頁面代碼與Vue.js腳本代碼是寫在同一個頁面文件中的,我們可以直接通過運行瀏覽器進行測試,如圖2.1所示。

圖2.1 通過瀏覽器測試Vue.js代碼

如圖2.1中的箭頭所示,【代碼2-1】中第17行代碼定義的message字符串信息被成功渲染到頁面上了。

2.2.2 通過CDN方式引入Vue.js

對于CDN方式,相信大多數讀者都比較熟悉,Vue.js框架支持多種CDN的使用方式,下面詳細介紹一下這些用法。

第1種是unpkg方式(Vue官網推薦的方式),具體如下:

第2種是cdnjs方式,具體如下:

第3種是jsdelivr方式,具體如下:

https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.min.js // 注意版本號

以上3種方式中,推薦使用第1種Vue官方給出的unpkg方式,它相對穩定且能保證及時更新。

下面,我們將【代碼2-1】按照CDN方式進行改寫,具體如下:

【代碼2-2】(詳見源代碼hellovue目錄中的hellovue-cdn.html文件)

01  <!DOCTYPE html>
02  <html lang="en">
03  <head>
04      <meta charset="UTF-8">
05      <meta name="viewport" content="width=device-width, initial-scale=1.0">
06      <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
07      <title>Hello Vue.js</title>
08  </head>
09  <body>
10      <div id="app">
11          {{ message }}
12      </div>
13      <script>
14          const { createApp, ref } = Vue
15          createApp({
16              setup() {
17                  const message = ref('Hello Vue!')
18                  return {
19                      message
20                  }
21              }
22          }).mount('#app')
23      </script>
24  </body>
25  </html>

【代碼說明】

· 在第06行代碼中,通過<script>標簽以unpkg方式引入了全局構建版本的Vue。

· 在第10~12行代碼中,通過<div>標簽定義一個分區元素及其id屬性值(id="app")。第11行代碼中的雙花括號({{ }})是Vue.js框架專用的模板語法(Mustache語法),雙花括號內的message為數據綁定對象。

· 第13~23行代碼定義的是Vue.js腳本語言,通過createApp方法實例化Vue組件,并通過setup鉤子在組件中使用組合式API的入口。具體內容如下:

? 第17行代碼通過ref引用定義一個字符串常量(message)。

? 第18~20行代碼通過return關鍵字返回第17行代碼定義的message常量。

? 第22行代碼通過調用mount方法實現將數據內容渲染到頁面中指定的DOM元素上。

讀者可以自行測試一下【代碼2-2】,頁面效果與【代碼2-1】是完全一致的。

2.2.3 兼容ES Module的方式

Vue.js官網還推薦了一種兼容ES Module的構建文件,適用于使用原生ES Modules的開發場景,具體如下:

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

注意代碼中type="module"和import命令的使用,它們遵循的是ECMAScript 2015規范標準。另外,這種方式也支持使用第三方CDN源,具體如下:

<script type="module">
    import vue from 'https://cdn.jsdelivr.net/npm/vue@3.3.4/+esm'
</script>

下面,我們將【代碼2-1】按照ES Module方式進行改寫,具體如下:

【代碼2-3】(詳見源代碼hellovue目錄中的hellovue-esm.html文件)

01  <!DOCTYPE html>
02  <html lang="en">
03  <head>
04      <meta charset="UTF-8">
05      <meta name="viewport" content="width=device-width, initial-scale=1.0">
06      <title>Hello Vue.js</title>
07  </head>
08  <body>
09      <div id="app">
10          {{ message }}
11      </div>
12      <script type="module">
13          // import vue with ES module
14          import {createApp,ref} from
'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
15          // app
16          createApp({
17              setup() {
18                  const message = ref('Hello Vue!')
19                  return {
20                      message
21                  }
22              }
23          }).mount('#app')
24      </script>
25  </body>
26  </html>

【代碼說明】

· 在第14行代碼中,通過import命令以ES Module方式引入了全局構建版本的Vue。

· 在第09~11行代碼中,通過<div>標簽定義一個分區元素及其id屬性值(id="app")。第10行代碼中的雙花括號({{ }})是Vue.js框架專用的模板語法(Mustache語法),雙花括號內的message為數據綁定對象。

· 第16~23行代碼定義的是Vue.js腳本語言,通過createApp方法實例化Vue組件,并通過setup鉤子在組件中使用組合式API的入口。具體內容如下:

? 第18行代碼通過ref引用定義一個字符串常量(message)。

? 第19~21行代碼通過return關鍵字返回第17行代碼定義的message常量。

? 第23行代碼通過調用mount方法實現將數據內容渲染到頁面中指定的DOM元素上。

讀者可以自行測試一下【代碼2-3】,頁面效果與【代碼2-1】是完全一致的。

主站蜘蛛池模板: 建德市| 阜康市| 汶川县| 宁津县| 刚察县| 平顺县| 凤城市| 吕梁市| 平乡县| 韩城市| 西宁市| 宁南县| 大田县| 诸暨市| 盐山县| 营山县| 石城县| 清河县| 布尔津县| 山西省| 峨边| 谷城县| 玉环县| 雷波县| 龙游县| 吴堡县| 清新县| 东海县| 错那县| 磐石市| 白河县| 垣曲县| 建瓯市| 竹溪县| 玉溪市| 军事| 乌审旗| 邮箱| 鄂尔多斯市| 乐平市| 周至县|