vue 系列——vue2-webpack2框架搭建踩坑之路
react、vue、angular代表了3種前端工程化的思想,學習三大框架主要是理解它們的核心概念,比如組件、生命周期、單向數(shù)據(jù)流、雙向綁定等。這些概念在非框架開發(fā)中,很少人會去這樣系統(tǒng)化的思考,對于新手來說,很多概念都沒有接觸過,不知道從何入手一個react、vue或者是angular項目,下面我將會從零搭建vue項目,邊做項目邊學習vue的思想。
1、想要使用vue,我首先該怎么做?
想要學習vue,我第一件事是去vue官網(wǎng)看簡介:https://cn.vuejs.org/v2/guide... ,仔細一看,vue現(xiàn)在有1.X和2.X的區(qū)別,很好,我果斷選擇2.X。
選中了vue版本,我上知乎搜索了vue框架搭建的方式,看了前輩的各種分享,了解到一個叫做 cooking 的好玩意,好在哪里?
cooking 的目標是將你從繁瑣的構(gòu)建配置中解放出來,同時還省去每個項目都要安裝一堆開發(fā)依賴的麻煩?;?webapck 但更友好的配置項、易用的擴展配置機制,讓你專注項目忘掉配置。
哇,看到cooking官網(wǎng)介紹的這么好,我果斷按照它的教程去做,瞎搞了一下下,發(fā)現(xiàn)用的不爽啊,一鍵配置環(huán)境看起來很高大上,可是還得去學習cooking的使用,而且本地得安裝cooking,搞得我頭暈,雖然在瀏覽器成功訪問到了網(wǎng)頁,但我還是放棄了這個好玩意。
這時候只能自己從0開始搭建項目了。
2、在github新建vue2-web項目。
打開github首頁,點擊start a project。
接著你會看到Create a new repository,需要你填寫項目信息,這個步驟跳過。
然后項目就建好了,clone到本地。
3、初始化npm
用shell或者cmd進入項目根目錄,執(zhí)行下面的命令,選項什么的直接跳過,最后會生成package.json文件。
npm init
4、安裝webpack
沒有webpack就活不下去的感覺,但是配置webpack也會讓人活不下去,太難記住webpack的配置項了,不過別擔心,我已經(jīng)幫你搞定這一步了,咋們都必須使用webpack2啊。
npm install --save-dev webpack
還需要前端服務器,做熱更新呀,webpack-dev-server登場。
npm install --save-dev webpack-dev-server
5、創(chuàng)建webpack.config.js文件
和react中的webpack配置文件沒什么區(qū)別,只是稍微改動一個地方即可移植過來使用。
千萬不要把js和vue放到一起,不起作用的,必須分開,必須,這個坑我已經(jīng)踩過了,為了找這個坑,浪費了我好幾個小時,最最最隱蔽的一個地方。
rules: [{
test: /\.js$/,
use: ['babel-loader'],
exclude: /node_modules/,
include: resolve('src')
},{
test: /\.vue$/,
use: ['vue-loader'],
exclude: /node_modules/,
include: resolve('src')
},
6、創(chuàng)建.babelrc文件。
babel少不了,注意這里不是用react了,而是vue,包括下面幾個插件,flow-vue、transform-vue-jsx。
{
"presets": ["es2015", "flow-vue", "stage-0", "stage-2"],
"plugins": ["transform-vue-jsx"],
"comments": false,
"env": {
"production": {
"plugins": [
["transform-runtime", { "polyfill": false, "regenerator": false }]
]
}
}
}
7、在package.json添加start命令
直接使用webpack-dev-server啟動,哇塞,一堆報錯,說少了哪個module,這個簡單,因為配置文件里面引用的一堆module,還沒有安裝到項目呢,這時候一個個安裝好就行了。
"start": "webpack-dev-server",
8、項目入口main.js文件。
這個文件名自己喜歡咋取就咋取,代碼挺簡單的,實例化一個Vue和路由,是不是和react的入口文件很像?當然,我做的是SPA,所以采用單入口的形式,如果是非SPA模式,就不是這種配置方式了。
import Vue from 'vue';
import App from './App.vue';
import VueRouter from 'vue-router';
import routes from './routes';
import VueResource from 'vue-resource';
Vue.use(VueResource); //http請求注冊
Vue.use(VueRouter); //路由注冊
// 實例化路由
const router = new VueRouter({
// mode: 'history', //H5 路由模式,需要服務端做渲染防止404錯誤
base: __dirname,
linkActiveClass: 'on',
routes
})
let render = new Vue({
router,
el: '#app',
render: h => h(App)
});
render;
// if (module.hot) {
// 非必須
// module.hot.accept('./App.vue', () => render);
// }
9、路由routes.js
路由和react也非常像(簡直一樣好不),這里的vue頁面采用.vue后綴的方式來寫。
import Home from './components/home/Home.vue';
import Bang from './components/bang/Bang.vue';
export default [
{
path: '/',
redirect: 'home'
},
{
path: '/home',
component: Home
},
{
path: '/bang',
component: Bang
}
]
10、單頁頂層容器App.vue
從index進來,就是這個文件,現(xiàn)在開始學習vue的精華。
template:vue的模板語言,也叫作jsx。
transition:過渡動畫。
router-view:路由顯示容器,通過router-link跳轉(zhuǎn)加載的.vue會在這個容器渲染。router-link被我封裝到nav.vue組件里面了。
script:導入了當前頂級容器需要用到的vue組件,包括頭部、導航、首頁。還有更多豐富的設置我沒有研究,后續(xù)的學習中會深入下去。
style: 當前組件的樣式,我配置了less語法支持。將style改成<style lang="less">即可寫less。
<template>
<div>
<app-header logo="logo" ></app-header>
<app-nav></app-nav>
<transition name="fade" mode="out-in">
<router-view class="view"></router-view>
</transition>
</div>
</template>
<script>
import Header from './components/common/Header.vue';
import Nav from './components/common/Nav.vue';
import Home from './components/home/Home.vue';
export default {
name: 'App',
components: {
"app-header": Header,
"app-nav": Nav,
"app-home": Home
}
};
</script>
<style>
body, html {
font-size: 12px;
margin: 0;
padding: 0;
}
</style>
踩坑的過程中,也遇到了好幾個報錯情況,最后都圓滿解決了。
如果你想看更詳細的vue組件代碼,可以看具體項目:https://github.com/hyy1115/vu...
接下來我會繼續(xù)完善該項目,探究一個更加靈活的vue架構(gòu)實現(xiàn)。
運行效果圖:vue-酷我demo

總結(jié)
以上所述是小編給大家介紹的vue 系列——vue2-webpack2框架搭建踩坑之路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家的支持!
相關(guān)文章
Vue通過echarts實現(xiàn)數(shù)據(jù)圖表化顯示
Echarts,它是一個與框架無關(guān)的 JS 圖表庫,但是它基于Js,這樣很多框架都能使用它,例如Vue,估計IONIC也能用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
vue組件傳值的實現(xiàn)方式小結(jié)【三種方式】
這篇文章主要介紹了vue組件傳值的實現(xiàn)方式,結(jié)合實例形式總結(jié)分析了vue.js組建傳值的三種實現(xiàn)方式,包括父傳子、子傳父及非父子傳值,需要的朋友可以參考下2020-02-02
vue改變循環(huán)遍歷后的數(shù)據(jù)實例
今天小編就為大家分享一篇vue改變循環(huán)遍歷后的數(shù)據(jù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue-router history模式下的微信分享小結(jié)
本篇文章主要介紹了vue-router history模式下的微信分享小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
vue+element?upload上傳帶參數(shù)的實例
這篇文章主要介紹了vue+element?upload上傳帶參數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04

