光速入门Vue
Vue -- 光速入門
- 一. 起步
- 1.1 看 [官方文檔](https://cn.vuejs.org/v2/guide/)
- 1.2 回顧前端開發幾個點
- (1). HTML => 內部:頁面結構,對外:頁面之間的互動(僅對應于SPA)
- (2). CSS => 樣式
- (3). JS => 交互
- (4). 本地緩存(本文暫不涉及)
- 二. 一個包含四個關鍵點的Demo
- 2.1 vue-cli搭建空項目
- 2.2 項目骨架Router
- 2.3 寫一個頁面
- 2.4 Vue中的交互
- 總結
作者: DocWhite白先生
序: 由于偶然巧合,筆者即將需要去往上海出差,又恰巧上海那邊的前端框架應用的是vue而不是筆者最熟悉的React。導致需要在出發前一兩天需要火速熟悉Vue的代碼風格,語法規則以及實際運用,本文以自己是如何快速掌握基本的Vue開發能力而展開,Let’s go!
一. 起步
1.1 看 官方文檔
學習入門任何語言和框架,最好的老師都是官方文檔!但是這里需要注意的是,Vue官方文檔中力推的項目啟動方式依然是傳統的通過引入script標簽,往全局環境注入了Vue對象,并由此展開Vue的基本使用。而對于早已習慣用 cli方式(命令行方式一鍵構建項目的老手來說),這種構建方式無疑過于繁瑣。
這里我想強調的不是去看官方文檔,而且強調一種看文檔的習慣。
1.2 回顧前端開發幾個點
(1). HTML => 內部:頁面結構,對外:頁面之間的互動(僅對應于SPA)
(2). CSS => 樣式
(3). JS => 交互
(4). 本地緩存(本文暫不涉及)
作為有經驗的前端開發人員在開發過程中的工作內容最頻繁最多的是什么?以React為例,絕大部分工作無異于
在不考慮代碼設計是否合理,以及是否符合規范的前提條件下,大多數情況下,前端er只要能完成前面4項的工作內容就已經算是能夠完成工作。
所以在學習任何新框架之前,我會先關注以上4個點,第五個屬于拓展性學習內容不做強要求。這么做的一個原因是,將開發目的前置,先清楚自己想要什么再去學,而非將先學習當做掌握開發的前提條件。
二. 一個包含四個關鍵點的Demo
2.1 vue-cli搭建空項目
這里跳過vue-cli的安裝過程。
與npx create-react-app 類似,vue也有這樣的一鍵生成項目的命令:
該命令會在當前目錄下創建名為hello-vue的項目目錄。
在命令行進入該目錄以后,執行npm run serve即可在本地啟動項目,注意查看package.json,默認自帶serve,build以及lint腳本。
注意:通過vue-cli創建的項目默認不集成router以及vuex,但是vue-cli可以很方便的把兩者快速安裝在項目中。
2.2 項目骨架Router
// 項目目錄下,命令行中執行 vue add router // vuex可以根據業務需求自行考慮是否加入 vue add vuex可以快速將router和vuex集成到項目中,這時候項目的基礎架構已經足以開發demo應用,接下來你會看到項目目錄結構中多出router.js,store.js , views目錄(里面包含兩個頁面組件)。他們作用不言而喻。
先來看看作為項目入口的main.js:
import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store'Vue.config.productionTip = false;new Vue({router,store,render: h => h(App) }).$mount('#app');即使完全沒有接觸過Vue,應該也能看懂這個入口文件只做了幾件事:
再看看router.js 做了什么:
import Vue from 'vue' import Router from 'vue-router' import Home from './views/Home.vue'Vue.use(Router);export default new Router({mode: 'history',base: process.env.BASE_URL,routes: [{path: '/',name: 'home',component: Home},{path: '/about',name: 'about',// route level code-splitting// this generates a separate chunk (about.[hash].js) for this route// which is lazy-loaded when the route is visited.component: () => import(/* webpackChunkName: "about" */ './views/About.vue')}] })這時候回頭看App.vue:
到這里已經知道如何擴展SPA應用的頁面。以及如何控制頁面跳轉了。
2.3 寫一個頁面
在寫頁面前,先引入國內vue社區中比較流行UI庫 Element-ui。該ui庫在vue-cli中也提供了對應的插件能一鍵安裝。
vue add element執行完會重寫App.vue文件,并提供一個使用Element組件的例子。但是被重寫之后,路由組件失效了,因為在App.vue中沒有顯式的使用router-view組件,所以還原App.vue回到剛剛安裝router時候的樣子:
<template><div id="app"><div id="nav"><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></div><router-view/></div> </template><script> // import HelloWorld from './components/HelloWorld.vue'export default {name: 'app',components: {// HelloWorld} } </script><style> #app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px; } </style>這里有兩個很關鍵的點:
這時候在瀏覽器查看頁面:
Router組件已經能正常運行。
到這里又掌握了Vue中組件的引入以及使用方式。
接下來需要做的就是改寫views目錄下的Home頁面,將Element UI庫中Container組件的例子復制到Home.vue。并將App.vue中實現頁面跳轉的示例代碼刪除。
<template><el-container><el-aside width="200px">Aside</el-aside><el-container><el-header>Header</el-header><el-main>Main</el-main><el-footer>Footer</el-footer></el-container></el-container> </template> <script> // @ is an alias to /srcexport default {name: 'home',components: {} } </script> <style>... </style>這時候一個頁面終于有了它的基本骨架
這一步的作用是幫助快速上手使用Element-ui模擬真實的頁面制作過程中的骨架搭建。
2.4 Vue中的交互
在聊頁面交互之前,先舉一些常用的前端交互應用場景:
想了解更多的特性,還是推薦從頭開始認真閱讀(官方文檔傳送門)
所以在學習Vue語法之前,當你的腦海里已經清楚了自己需要實現什么目的!接下來就一一通過文檔實踐如何實現這些目的。
逐個來:
v-model指令能快速將data中的數據,跟dom節點的值進行雙向綁定,同時如果不使用v-model指令也可以value賦值以及通過監聽組件的change,click等事件進行數據的監聽和改變。所以Vue有兩種方式可以實現數據的雙向綁定的方式。
這里在Vue的生命周期函數created中發起一個異步請求,請求服務端數據,同理當然也能在其他生命周期狀態發起異步請求獲取服務端數據,亦或是通過監聽用戶操作觸發取決于實際情況自行決定,這里需要注意的一點就是要熟悉Vue的生命周期函數接口(傳送門)。
小結:
總結
到這里,這個簡單的入門教程就算完結了,而對于想更進一步了解熟悉Vue的同學,最好還是要按部就班的學習,任何速成的教程都不可能真的馬上就能教會你如何去做,更多的是筆者如何介紹他自己在學習過程中的思維方式,加油。總的來說Vue上手難度不會很大,當然想跟進一步深入理解Vue的框架設計,以及用好它還是需要認真研讀官方文檔,參考官方案例,多上手實際項目積攢經驗,才能寫出更好的代碼。
總結
- 上一篇: 使用英特尔GPA优化《剑侠情缘三》游戏的
- 下一篇: winamp播放ape文件