Vue.js 十五分鐘入門

      網友投稿 1103 2025-03-31

      TypeScript 為 JavaScript 帶來靜態類型檢查,讓 JavaScript 編寫中大型應用的時候可以應用工具來避免部分錯誤。

      Vue 很早就支持 TypeScript,但配置起來比較麻煩,幸好有了 Vue CLI 3.0。安裝好 vue-cli 之后,使用 vue create 項目名稱 來創建項目,vue 腳本手架自動創建以項目名稱命名的目錄。

      vue-cli 3 生成的項目結構比較科學,尤其是通過?components?和views?將作為控件的組件和作為頁面的組件分離開來,結構更清晰。可以理解為 views 中定義的組件是要配置在路由中的,而 componets 中定義的組件是被其它組件調用的。

      HTML 需要定義一個

      作為 Vue 應用的容器,main.ts 中會通過?new Vue(...)?生成應用實例并將之與容器綁定。注意 HTML 中定義的
      會被 App.vue 模板中定義的
      ...
      替換掉。

      Vue 是一個組件化的框架,組件是 Vue 的基本元素。一個 Vue 應用是由若干組件構成的,組件與組件之間的嵌套或并列關系,最終可以用樹形來表示。main.ts 中創建的 Vue 實例是最頂層組件。

      每個 Vue 組件都有三個組成部分,即骨架(HTML)、樣式(CSS/LESS/SCSS)和腳本(JavaScript/TypeScript)。可以在一個?.vue?文件中寫完三個部分,也可以將樣式和腳本部分分別寫成獨立的文件。筆者推薦獨立文件的方式。

      既然我們選用 TypeScript,使用上圖所示的 class-style 來實現 Vue 組件更為適合。

      Vue.js 十五分鐘入門

      除了 class-style 之外,也可以使用 config-style。配置風格是最早支持的風格,將 Vue 的各類成員(屬性、數據、計算屬性、方法等)獨立定義,易于理解 Vue 實例的內部結構,但初學者容易搞不清楚 this 指向。

      Vue 定義的組件需要注冊才能在其它組件中使用。注冊的方式分為全局和局部兩種。使用 TypeScript 和類風格開發 Vue 應用時,推薦使用局部注冊。局部注冊比較符合模式化開發思想。

      Vue 可以通過?{{ }}?語法在文本中插值。但是如果要將值插入屬性,則應使用 : 號修飾屬性名。組件屬性(指 HTML 標簽參數)可隨意定義,加?@Prop()?修飾即可,如果屬性是必須的,應該使用?:?來定義;可選屬性則使用?!:?來定義。

      在 HTML 或自定義組件標簽中使用?@?前綴的事件名,可以綁定事件處理函數。Vue 實現了部分 HTML 事件,比如?@click?可以直接綁定。組件也可以“定義”自己的事件,不需要提前聲明,只需要?this.$emit()?直接觸發即可。

      Vue 本身是數據驅動渲染,所以數據(包括屬性、計算屬性等)變化可以觸發界面數據呈現,但是界面的輸入要反饋給組件,就需要用觸發事件的方式來反饋。雙向綁定是用于更新屬性事件的語法糖,使用?:屬性名.sync="..."?綁定。子組件中通過觸發?update:屬性名?事件來更新父組件中綁定的數據。

      路由主要用于組織視圖(頁面)關系。最基本的要求是為路由配置每個路徑對應的組件。name?可以當作路徑的簡短別名。路由操作一般會使用注入到 Vue 實例中的?$router?對象,常用?$router.push()?和$router.replace()?來跳轉,二者的區別在于對 URL 歷史的影響(可以想像)

      路由項配置中的 component 可以指定為導入的的組件類,也可以指定一個異步(返回 Promise 的)函數,該函數動態加載組件并返回包含該組件類的 Promise 對象。上例中使用的?import()?動態引入語法。

      做一個簡單的登錄界面加深對前面知識的理解和記憶。該示例特意避免了 Ajax 調用,以降低其復雜程度。

      沒有 Ajax 實現的遠程認證,我們只能假設用戶輸入 pass 時為正確密碼。用戶名可任意輸入,如果驗證成功則會顯示該用戶已登錄。

      項目仍然是由 vue-cli 3 創建的。創建好之后去掉了?About?和?HelloWorld,加入了?Login,并將?Home?改造成三部分各自獨立的文件結構。當然,順便還按自己(或團隊)的開發規范調整了下?tslint.json?中的配置。

      App.vue、main.ts 和 router.ts 可以算得上是一個 Vue 應用的入口和基本配置。App.vue 中直接把控制權交給了 vue-router。注意,import?的時候不能省略?.vue?擴展名。

      Login 組件中用到了雙向綁定,由于屬性(由?@Prop()?修飾)不可以在內部修改,甚至可以把它聲明為?readonly(也許 Vue 3 會定義相關的規范)。注意到?keypress?事件有一個后綴,這在 Vue 中稱為事件修飾符,可以用于快速處理一些特殊情況,比如?keypress.enter?表示Enter按下時。

      在 Home 中使用 Login 組件時,Home?的?user?數據字段綁定到了?Login?的?user?屬性上,.sync?修飾符表示這是一個雙向綁定。前面 Login 的代碼中,如果登錄成功,Login 會通過?$emit("update:user", {...})?來通知綁定數據發生變化,Vue 框架接收到這個通知并更新了綁定的?Home.user,這會導致計算屬性?message?重算,并最終觸發呈現“某用戶已登錄”。

      Vue 入門很簡單吧!

      不過 Vue 本身含有非常豐富的功能,要用 Vue 搭建完整的應用,仍然需要了解大量 Vue 設計概念和操作技巧。建議讀者們仔細閱讀 Vue 官方提供教程和 API 手冊,并保持在 Vue 相關技術社區的活躍度。

      原碼下載:百度網盤

      -------------------------------------------------------

      本文轉自邊城_博客51CTO博客

      JavaScript Vue

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:DWS存儲分區表
      下一篇:wps如何制作折線圖表(wps文檔怎么做折線圖表)
      相關文章
      亚洲精品乱码久久久久久不卡| 亚洲国产精品日韩av不卡在线| 337p日本欧洲亚洲大胆人人| 亚洲图片中文字幕| 久久亚洲精品无码AV红樱桃| 亚洲乱码日产一区三区| 2022中文字字幕久亚洲| 亚洲无码视频在线| 亚洲精品成人a在线观看| 亚洲成av人在片观看| 婷婷亚洲天堂影院| 久久亚洲中文无码咪咪爱| 欧美激情综合亚洲一二区| 香蕉视频亚洲一级| 国产91成人精品亚洲精品| 成人亚洲网站www在线观看| 免费观看亚洲人成网站| 亚洲国产精品毛片av不卡在线 | 久久精品国产亚洲av影院| 亚洲国语精品自产拍在线观看 | 亚洲国产精品网站在线播放| 亚洲a∨无码一区二区| www国产亚洲精品久久久| 亚洲精品人成无码中文毛片| 国产a v无码专区亚洲av| 亚洲欧洲精品成人久久曰影片| 亚洲精品视频免费| 国产亚洲欧洲Aⅴ综合一区 | 亚洲熟妇无码AV在线播放| 国产亚洲欧洲精品| 99亚洲精品高清一二区| 91亚洲国产成人久久精品| 国产成人精品日本亚洲专| 亚洲hairy多毛pics大全| 亚洲AV无码专区日韩| 亚洲日产韩国一二三四区| 亚洲精品福利视频| 亚洲人和日本人jizz| 亚洲国产成人精品无码区二本 | 久久av无码专区亚洲av桃花岛| 亚洲视频在线一区二区三区|