關(guān)于vue-cli的一些準(zhǔn)備工作

vue-cli

1. 新建vue-cli項(xiàng)目

命令 vue init webpack project-name

use ESLint to lint your code? 這個(gè)是格式檢測(cè)的東西胡嘿,不需要選擇NO

Setup unit tests? NO

setup e2e tests with NightWatch NO

2. 安裝sass sass-loader

命令 npm install node-sass --save-dev

? ? npm install sass-loader --save-dev

vue-cli 已經(jīng)幫我們配置好了webpack 直接用就好了

3. 安裝rem 自適應(yīng)布局 推薦使用淘寶的 flexible

(1) 安裝 lib-flexible

命令 npm install lib-flexible --save

在項(xiàng)目入口文件 main.js 里面 引入lib-flexible

import 'lib-flexible'

(2) 添加meta 標(biāo)簽 (3) px 轉(zhuǎn) rem

安裝 px2rem-loader

命令 npm i px2rem-loader --save-dev

配置 px2rem-loade

在 vue-cli 生成的 webpack 配置中蛉艾,vue-loader 的 options 和其他樣式文件 loader 最終是都是由 build/utils.js 里的一個(gè)方法生成的。

我們只需在 cssLoader 后再加上一個(gè) px2remLoader 即可灶平,px2rem-loader 的 remUnit 選項(xiàng)意思是 1rem=多少像素伺通,結(jié)合 lib-flexible 的方案箍土,我們將 px2remLoader 的 options.remUnit 設(shè)置成設(shè)計(jì)稿寬度的 1/10逢享,這里我們假設(shè)設(shè)計(jì)稿寬為 750px。

var cssLoader = {

? loader: 'css-loader',

? options: {

? ? minimize: process.env.NODE_ENV === 'production',

? ? sourceMap: options.sourceMap

? }

}

var px2remLoader = {

? loader: 'px2rem-loader',

? options: {

? ? remUnit: 75

? }

}

并放進(jìn) loaders 數(shù)組中

function generateLoaders (loader, loaderOptions) {

const loaders = options.usePostCSS ? [cssLoader,px2remLoader,postcssLoader] : [cssLoader,px2remLoader]

if (loader) {

? loaders.push({

? ? loader: loader + '-loader',

? ? options: Object.assign({}, loaderOptions, {

? ? ? sourceMap: options.sourceMap

? ? })

? })

}

}

4. spa router路由配置

此前安裝vue init webpack project 的時(shí)候若是選擇安裝了router吴藻,不用再安裝了

import Vue from 'vue'

import Router from 'vue-router'

import HelloWorld from '@/components/HelloWorld'

import Demo from '@/components/Demo'

import User from '@/components/User'

import Mine from '@/components/Mine'

Vue.use(Router)

export default new Router({

? routes: [

? ? {

? ? path: '/',

? ? name: 'HelloWorld',

? ? component: HelloWorld

? ? },

? ? {

? ? path:'/My',

? ? name:'my',

? ? component:My,

? ? children:[

? ? {

? ? path:'/My/user',

? ? name:'User',

? ? component:User

? ? },

? ? {

? ? path:'/My/mine',

? ? name:'Mine',

? ? component:Mine

? ? }

? ? ]

? ? }

? ]

})

5. 項(xiàng)目初期對(duì)公共樣式的處理 此前已經(jīng)安裝過(guò)node-sass sass-loader,對(duì)于公共樣式的處理引入瞒爬,一般都是放到main.js里面

import './common/css/reset.css' 即可

建議直接放到static靜態(tài)文件里面

6. 安裝 vuex

首先安裝 vuex

命令:? npm install vuex -s

然后在main.js 里面引入

import Vue from 'vue'

import App from './App'

import Vuex from 'vuex'

import store from './vuex/store'

Vue.use(Vuex)

/* eslint-disable no-new */

new Vue({

? el: '#app',

? store,

? render: h => h(App)

}

第二步 構(gòu)建核心的倉(cāng)庫(kù) store.js

Vuex 應(yīng)用的狀態(tài) state 都應(yīng)當(dāng)存放在 store.js 里面,Vue 組件可以從 store.js 里面獲取狀態(tài)沟堡,可以把 store 通俗的理解為一個(gè)全局變量的倉(cāng)庫(kù)侧但。

但是和單純的全局變量又有一些區(qū)別,主要體現(xiàn)在當(dāng) store 中的狀態(tài)發(fā)生改變時(shí)航罗,相應(yīng)的 vue 組件也會(huì)得到高效更新禀横。(不知道是不是可以理解為把所有的狀態(tài)都放到store.js里面去處理,這樣會(huì)不會(huì)狀態(tài)太多粥血?暫時(shí)還不清楚)

在 src 目錄下創(chuàng)建一個(gè) vuex 目錄柏锄,將 store.js 放到 vuex 目錄下

import Vue from 'vue'

import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({

? // 定義狀態(tài)

? state: {

? ? author: 'suolun'

? }

})

export default store

雖然在 main.js 中已經(jīng)引入了 Vue 和 Vuex,但是這里還得再引入一次

第三步:將狀態(tài)映射到組件

computed: {

? author () {

? ? return this.$store.state.author

? }

}

主要在 computed 中复亏,將 this.$store.state.author 的值返回給 html 中的 author

頁(yè)面渲染之后就能獲取到數(shù)據(jù)了

{{author}}

第四步:在組件中修改狀態(tài)

這個(gè)方法還是比較簡(jiǎn)單的

methods: {

 setAuthor: function () {

   this.$store.state.author = this.inpuTxt

 }

}

一眼就能看的懂

直接賦值就好了

五:官方推薦的修改狀態(tài)的方式

具體方式看鏈接 http://www.cnblogs.com/wisewrong/p/6344390.html

推薦官方的方式趾娃,可以讓我們更好的跟蹤每一個(gè)狀態(tài)的變化,

7.組件

組件的運(yùn)用簡(jiǎn)單分為兩種缔御,一種是全局組件抬闷,一個(gè)是內(nèi)部組件,什么時(shí)候用全局還是局部的耕突,看場(chǎng)景

8.關(guān)于vue-cli 解決跨域的問(wèn)題

config下修改地方

dev.env.js

module.exports = merge(prodEnv, {

? NODE_ENV: '"development"',

? DEBUG_MODE:true,

? API_KEY:'"/api"'

})

prod.env.js

module.exports = {

? NODE_ENV: '"production"',

? DEBUG_MODE:false,

? API_KEY:'""'

}

index.js

env:require('./dev.env'),

// Paths

assetsSubDirectory: 'static',

assetsPublicPath: '/',

proxyTable: {

? ? //手動(dòng)配置ajax開(kāi)發(fā)環(huán)境跨域問(wèn)題

? ? '/api/': {

? ? ? ? target: 'https://www.xxxx.com/',

? ? ? ? changeOrigin: true,

? ? ? ? pathRewrite: {

? ? ? ? ? '^/api': ''

? ? ? ? }

? ? ? }

},

在src下新建一個(gè)api.js

var root = process.env.API_KEY

export default{

? data:root

}

main.js

import Vue from 'vue'

import axios from 'axios'

import api from './api'

Vue.prototype.$http = axios;

Vue.prototype.$api = api.data

用法

this.$http({

? method:'get',

? url:this.$api+'/app/home/brand_list',

}).then(res=>{

? console.log(res)

})


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笤成,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子眷茁,更是在濱河造成了極大的恐慌疹启,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔼卡,死亡現(xiàn)場(chǎng)離奇詭異喊崖,居然都是意外死亡挣磨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)荤懂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)茁裙,“玉大人,你說(shuō)我怎么就攤上這事节仿∥钭叮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵廊宪,是天一觀的道長(zhǎng)矾瘾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)箭启,這世上最難降的妖魔是什么壕翩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮傅寡,結(jié)果婚禮上放妈,老公的妹妹穿的比我還像新娘。我一直安慰自己荐操,他們只是感情好芜抒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著托启,像睡著了一般宅倒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屯耸,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天拐迁,我揣著相機(jī)與錄音,去河邊找鬼肩民。 笑死唠亚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的持痰。 我是一名探鬼主播灶搜,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼工窍!你這毒婦竟也來(lái)了割卖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤患雏,失蹤者是張志新(化名)和其女友劉穎鹏溯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體淹仑,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丙挽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年肺孵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颜阐。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡平窘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凳怨,到底是詐尸還是另有隱情瑰艘,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布肤舞,位于F島的核電站紫新,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏李剖。R本人自食惡果不足惜芒率,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杖爽。 院中可真熱鬧敲董,春花似錦紫皇、人聲如沸慰安。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)化焕。三九已至,卻和暖如春铃剔,著一層夾襖步出監(jiān)牢的瞬間撒桨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工键兜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凤类,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓普气,卻偏偏與公主長(zhǎng)得像谜疤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子现诀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 摘要: 2016年最火的前端框架當(dāng)屬Vue.js了夷磕,很多使用過(guò)vue的程序員這樣評(píng)價(jià)它,“vue.js兼具angu...
    OSC開(kāi)源社區(qū)閱讀 23,635評(píng)論 2 149
  • 原文http://www.cnblogs.com/libin-1/p/6596810.html 版本號(hào) vue-c...
    tengrl閱讀 3,634評(píng)論 0 0
  • 前言 webpack2和vue2已經(jīng)不是新鮮東西了仔沿,滿大街的文章在講解webpack和vue坐桩,但是很多內(nèi)容寫(xiě)的不是...
    技術(shù)宅小青年閱讀 6,517評(píng)論 4 43
  • 一個(gè) 太陽(yáng)還賴在床上 的清晨 我說(shuō),我愛(ài)你 你問(wèn)封锉,你愛(ài)我什么 我說(shuō)绵跷,不知道 我想膘螟,我愛(ài)你 像春天粉白落櫻 像夏天涼...
    mumian閱讀 207評(píng)論 0 0
  • 偶爾來(lái)到了黃河邊,穿過(guò)浮橋碾局,來(lái)到了這里萍鲸,靜悄悄的,綠樹(shù)和青草已經(jīng)占據(jù)了人們?cè)?jīng)生活的環(huán)境擦俐,反而長(zhǎng)的旺盛脊阴,也許,本該...
    指間天涯閱讀 296評(píng)論 3 5