Vue學習筆記之vue-cli項目搭建及解析

Vue

(一)安裝node.js

首先須要安裝node環境,能夠直接到中文官網http://nodejs.cn/下載安裝包css

只是這樣安裝的 node 是固定版本的,若是須要多版本的 node,可使用 nvm 安裝http://blog.csdn.net/s8460049...html

安裝完成後,能夠命令行工具中輸入 node -v 和 npm -v,若是能顯示出版本號,就說明安裝成功。
查看node版本vue

(二)安裝vue-cli

安裝好了 node,咱們能夠直接全局安裝 vue-cli:node

npm install -g vue-cli

可是這種安裝方式比較慢,推薦使用國內鏡像來安裝,因此咱們先設置 cnpm:webpack

npm install -g cnpm --registry=https://registry.npm.taobao.org

若是安裝失敗,可使用 npm cache clean 清理緩存,而後再從新安裝。後面的安裝過程當中,若有安裝失敗的狀況,也須要先清理緩存git

一樣可使用 cnpm -v 查看是否安裝成功
查看cnpm版本
而後使用 cnpm 安裝 vue-cli 和 webpackes6

cnpm install -g vue-cli

最新的 vue 項目模板中,都帶有 webpack 插件,因此這裏能夠不安裝 webpackgithub

安裝完成後,可使用 vue -V (注意 V 大寫)查看是否安裝成功。
vue版本查看
若是提示「沒法識別 'vue' 」 ,有多是 npm 版本太低,可使用 npm install -g npm 來更新版本web

(三)生成項目

首先須要在命令行中進入到項目目錄,而後輸入:vue-cli

vue init webpack Vue-Project

其中 webpack 是模板名稱,能夠到 vue.js 的 GitHub 上查看更多的模板https://github.com/vuejs-temp...

Vue-Project 是自定義的項目名稱,命令執行以後,會在當前目錄生成一個以該名稱命名的項目文件夾
模板過程
配置完成後,能夠看到目錄下多出了一個項目文件夾,裏面就是 vue-cli 建立的一個基於 webpack 的 vue.js 項目

而後進入項目目錄(cd Vue-Project),使用 cnpm 安裝依賴

cnpm install

而後啓動項目

npm run dev

若是瀏覽器打開以後,沒有加載出頁面,有多是本地的 8080 端口被佔用,須要修改一下配置文件 config>index.js
更改配置
建議將端口號改成不經常使用的端口。另外我還將 build 的路徑前綴修改成 ' ./ '(本來爲 ' / '),是由於打包以後,外部引入 js 和 css 文件時,若是路徑以 ' / ' 開頭,在本地是沒法找到對應文件的(服務器上沒問題)。因此若是須要在本地打開打包後的文件,就得修改文件路徑。

(四)打包上線

本身的項目文件都須要放到 src 文件夾下

項目開發完成以後,能夠輸入 npm run build 來進行打包工做

npm run build

打包完成後,會生成 dist 文件夾,若是已經修改了文件路徑,能夠直接打開本地文件查看

項目上線時,只須要將 dist 文件夾放到服務器就好了。

(五)項目解析
一、 index.html——[主頁]

index.html如其餘html同樣,但通常只定義一個空的根節點,在main.js裏面定義的實例將掛載在根節點下,內容都經過vue組件來填充
index.app

二、main.js——[入口文件]

main.js主要是引入vue框架,根組件及路由設置,而且定義vue實例,下圖中的

1>router就是設置路由器
2>template:"<App/>"就是設置#app的模板爲<App></App>
3>components:{App}就是引入的根組件App.vue

後期還能夠引入插件,固然首先得安裝插件。
main.js

三、App.vue——[根組件]

一個vue頁面一般由三部分組成:模板(template)、js(script)、樣式(style)
App.vue

【template】
其中模板只能包含一個父節點,也就是說頂層的div只能有一個(例以下圖,父節點爲#app的div,其沒有兄弟節點)
<router-view></router-view>是子路由視圖,後面的路由頁面都顯示在此處
打一個比喻吧,<router-view>相似於一個插槽,跳轉某個路由時,該路由下的頁面就插在這個插槽中渲染顯示

【script】
vue一般用es6來寫,用export default導出,其下面能夠包含數據data,生命週期(mounted等),方法(methods)等,具體語法請看vue.js文檔,在後面我也會經過例子來講明。

【style】
樣式經過style標籤<style></style>包裹,默認是影響全局的,如需定義做用域只在該組件下起做用,需在標籤上加scoped,<style scoped></style>
如要引入外部css文件,首先需給項目安裝css-loader依賴包,打開cmd,進入項目目錄,輸入npm install css-loader,回車。安裝完成後,就能夠在style標籤下import所需的css文件,例如:

<style>
 
  import './assets/css/public.css'
 
</style>

這樣,咱們就能夠把style下的樣式封裝起來,寫到css文件夾,再引入到頁面使用,整個vue頁面也看上去更簡潔。

四、 router——[路由配置]

router文件夾下,有一個index.js,即爲路由配置文件
router
這裏定義了路徑爲'/'的路由,該路由對應的頁面是Hello組件,因此當咱們在瀏覽器url訪問http://localhost:8080/#/時就渲染的Hello組件
相似的,咱們能夠設置多個路由,‘/index','/list'之類的,固然首先得引入該組件,再爲該組件設置路由。
以上就是本文的所有內容,但願對你們的學習有所幫助,也但願你們多多支持腳本之家。

五、其餘組件

例如現有組件footer.vue,原文地址

<template>
    <div class="footer fixed">
        <ul>
            <li><router-link to='/'>首頁</router-link></li>
            <li><router-link to='/manage'>人員管理</router-link></li>
        </ul>
    </div>
</template>

<style scoped>
    li a{display: inline-block; width: 100%; height:100%;}
    .footer{width:100%; height:50px; bottom:0;}
    ul{display: flex; height:100%; line-height:50px;}
    ul li{flex: 1; background-color:#f1f1f1;}
    .isIndex li:first-child{background-color:#d3d3d3;}
    .isIndex li:first-child a{color:#41b883;}
    .isManage li:last-child{background-color:#d3d3d3;}
    .isManage li:last-child a{color:#41b883;}
</style>

若是在其餘頁面中有使用到該組件能夠以下:

<template>
    <div>
        歡迎來到人員管理系統
        <footer-nav v-bind:class="{'isIndex':isNowPage}"></footer-nav>
    </div>
</template>

<script>
    import FooterNav from '../../components/footer.vue'
    export default{
        components: {
            FooterNav
        },
        data(){
            return{
                isNowPage: true
            }
        }
    }
</script>

(1)引入組件 import FooterNav from '../../components/footer.vue'

(2)局部註冊 注意寫在export default內部,components:{FooterNav},該寫法爲es6寫法阮一峯es6教程,將視圖中的使用的組件和相關數據對外開放,在內部vue-loader會進行相關操做的處理

(3)使用組件 <footer-nav></footer-nav> 注意命名,駝峯法定義的組件FooterNav需在使用時用短橫線鏈接<footer-nav>

注意:相對路徑中./爲當前目錄../爲上級目錄

相關文章
相關標籤/搜索