国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue.js 十五分鐘入門圖文教程

2019-11-19 12:58:02
字體:
供稿:網(wǎng)友

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

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

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

HTML 需要定義一個 <div> 作為 Vue 應(yīng)用的容器,main.ts 中會通過 new Vue(...) 生成應(yīng)用實例并將之與容器綁定。注意 HTML 中定義的 <div id="app"></div> 會被 App.vue 模板中定義的 <div id="app">...</div> 替換掉。

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

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

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

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

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

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

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

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

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

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

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

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

項目仍然是由 vue-cli 3 創(chuàng)建的。創(chuàng)建好之后去掉了 AboutHelloWorld,加入了 Login,并將 Home 改造成三部分各自獨立的文件結(jié)構(gòu)。當然,順便還按自己(或團隊)的開發(fā)規(guī)范調(diào)整了下 tslint.json 中的配置。

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

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

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

Vue 入門很簡單吧!

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

原碼下載:點擊此處下載

總結(jié)

以上所述是小編給大家介紹的Vue.js 十五分鐘入門圖文教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 威宁| 房产| 固阳县| 将乐县| 黎平县| 宁陵县| 江都市| 枣阳市| 麻栗坡县| 屏边| 芷江| 沐川县| 化隆| 海门市| 清水县| 漯河市| 宽城| 呼和浩特市| 衢州市| 宝兴县| 夏河县| 泗水县| 唐河县| 海城市| 彭阳县| 桑日县| 吉木乃县| 龙泉市| 宝应县| 荣成市| 威远县| 邵阳市| 阿克陶县| 闽侯县| 万年县| 惠安县| 迁安市| 城口县| 德安县| 芒康县| 偏关县|