Vue2學習之旅一:初始化項目搭建(不帶路由)

做者:心葉
時間:2018-04-25 16:33css

本篇最終項目文件Github地址:github.com/paper520/vue.quick/tree/V1html

Vue2學習之旅系列文章目錄vue

【不使用vue-cli搭建,由於那樣會遺落太多細節沒有說明】node

下面,咱們來一步步使用webpack搭建一個用來學習Vue2的環境,力求沒有冗餘的代碼,讓咱們開始吧!webpack

備註:後面的學習所有基於這個環境來進行!git

先來看看最終的項目結構:github

圖片描述

總體說明

(1)build/main.js和node_modules是自動生成的,先無視web

(2)package.json裏面是須要用到的node包和一些配置,內容以下:vue-cli

{
  "name": "vue.quick",
  "version": "0.0.0",
  "scripts": {
    "start": "node_modules/.bin/webpack-dev-server --inline --hot --port 20000",
    "release": "node_modules/.bin/webpack"
  },
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^6.4.1",
    "css-loader": "^0.28.11",
    "vue-loader": "^11.3.4",
    "vue-template-compiler": "^2.5.16",
    "webpack": "^2.4.1",
    "webpack-dev-server": "^2.4.2"
  },
  "dependencies": {
    "vue": "^2.2.6"
  }
}

既然是vue開發,所以vue包是必須的,webpack是打包框架,webpack-dev-server是服務器,vue-loader和babel-loader分別是用來解析.js和.vue文件的,餘下的都是這二個包依賴的。npm

上面的start和release分別是配置啓動服務器和打包的

(3)webpack.config.js是用來配置webpack的,先看看具體內容:

var webpack = require('webpack');
module.exports = {
    entry: ['./src/entry.js'],
    output: {
        path: __dirname,
        filename: 'build/main.js'
    },
    module: {
        loaders: [{
                test: /\.vue$/,
                loader: 'vue-loader'
            },
            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: /node_modules/
            }
        ]
    }
};

入口文件是entry.js,打包的結果存放在main.js,而後配置瞭如何解析.vue和.js文件

(4)接着是index.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>vue.quick</title>
    </head>
    <body>
        <div id="root"></div>
        <script src="./build/main.js"></script>
    </body>
</html>

除了引入了最後打包的文件main.js外,請記住id='root',姑且稱爲掛載點。

(5)最後還剩下二個文件沒有說了,先看看App.vue,這個叫作【單文件組件】,其實就是一個vue組件,看看內容(具體寫法先無視,後面會細說):

<template>
    <span>
        {{ msg }}
    </span>
</template>

<script>
export default {
  data() {
    return {
      msg: "vue.quick - 基本版本代碼"
    };
  }
};
</script>

<style>
span {
  color: blue;
}
</style>

(6)最後一個,也就是打包入口文件entry.js,先看看內容:

import Vue from 'vue';
import App from './App.vue';

//根對象
var vm = new Vue({
    //掛載點
    el: '#root',
    //啓動組件
    render: function (callback) {
        return callback(App);
    }
});

能夠簡單的理解,這就是一個vue對象,前面(5)說的組件被他使用了,具體的仍是後面細說。

啓動項目

所有的文件都在本地保存好以後(node.js須要保證安裝好),命令行進入項目,確保dir或者ls的時候能夠看見package.json,而後運行:

npm install

這樣就安裝好了須要的node包,接着咱們啓動服務:

npm start

若是用的是上面的配置,如今在瀏覽器訪問localhost:20000/應該就能夠看見藍色的【vue.quick - 基本版本代碼】幾個字了。

除此以外,你還能夠運行打包命令:

npm run release

此時以前說的打包生成的main.js文件應該就生成了,或者選擇用瀏覽器打開index.html應該也能夠看見和剛剛同樣的結果。

vue對象說明

你能夠認爲,一個vue對象(也有的叫vue實例)就是一個管理一塊頁面區域的東西,具體管理哪一塊區域是根據掛載點來肯定的,還記得以前說的index.html裏面的掛載點嗎,就是和這裏的el屬性對應的,這裏的el屬性的值是#root,表示掛載到id=root的標籤上,那一塊歸這個vue對象管理了。

而如何建立一個vue對象是vue知道,所以開頭引入了Vue,並使用它常見了一個vue對象,而後這個對象就管理了這一塊區域。

但是管理以後,這一塊具體如何渲染,有什麼交互等,由於是vue對象,直接看VUE的API就知道了

這裏用到了render屬性,表示使用App這個vue單文件組件來處理這一塊,所以,接着看這個組件裏面的東西。

vue單文件組件

組件裏面的地方能夠劃分三塊:template,script和style。

4.1 template表示組件模板,有點相似html代碼,不過有一點點區別

4.2 style表示樣式,你能夠在這裏寫修改模板的css文件

4.3 script能夠理解爲管理數據和控制的,好比這裏定義了一個數據msg,在模板中使用了他,而後頁面就顯示出來告終果

結束語

到這裏,若是項目已經啓動成功,而且對這些文件已經有了大體的理解,那麼就能夠了,具體的細節會在後續文章中說明。

相關文章
相關標籤/搜索