Vue菜鳥入門

一、介紹

vue-cli 是一個基於 Vue.js 進行快速開發的完整系統。有三個組件:
cli:@vue/cli 全局安裝的 npm 包,提供了終端裏的vue命令(如:vue create 、vue serve 、vue ui 等命令)
cli 服務:@vue/cli-service是一個開發環境依賴。構建於 webpack 和 webpack-dev-server 之上(提供 如:serve、build 和 inspect 命令)
cli 插件:給Vue 項目提供可選功能的 npm 包 (如: Babel/TypeScript 轉譯、ESLint 集成、unit和 e2e測試 等)

二、安裝

1、全局安裝過舊版本的 vue-cli(1.x 或 2.x)要先卸載它,否則跳過此步:

1 npm uninstall vue-cli -g //或者 yarn global remove vue-cli

2、vue-cli 3需要 nodeJs ≥ 8.9 (官方推薦 8.11.0+,你可以使用 nvm 或 nvm-windows在同一臺電腦中管理多個 Node 版本)。

下載安裝nodeJs,中文官方下載地址:http://nodejs.cn/download/

3、安裝@vue/cli(vue/cli 3的包名稱由 vue-cli 改成了 @vue/cli)

npm install -g @vue/cli //yarn global add @vue/cli

vue -V //查看版本

三、使用

1、vue create 搭建新項目

用cmd命令進入某個文件夾,使用下面命令創建vue項目

vue create hello-world2

具體操作如下:

首先,會提示你選擇一個preset(預設):

① 除最後兩個,其他選項都是你此前保存的預設配置(如下圖第一個“ my-default”是我之前保存的預設配置,如今便可以直接用了):
預設
如果沒有配置保存過,則只有以下兩個選項:

② default(babel,eslint):默認設置(直接enter)非常適合快速創建一個新項目的原型,沒有帶任何輔助功能的 npm包

③ Manually select features:自定義配置(按方向鍵 ↓)是我們所需要的面向生產的項目,提供可選功能的 npm 包

因爲我之前沒有設置過,所以我選擇自定義(↓ + enter),進入下面
配置
手動選擇需要添加的配置項:

? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Babel //轉碼器,可以將ES6代碼轉爲ES5代碼,從而在現有環境執行。
( ) TypeScript// TypeScript是一個JavaScript(後綴.js)的超集(後綴.ts)包含並擴展了 JavaScript 的語法,需要被編譯輸出爲 JavaScript在瀏覽器運行,目前較少人再用
( ) Progressive Web App (PWA) Support// 漸進式Web應用程序
( ) Router // vue-router(vue路由)
( ) Vuex // vuex(vue的狀態管理模式)
( ) CSS Pre-processors // CSS 預處理器(如:less、sass)
( ) Linter / Formatter // 代碼風格檢查和格式化(如:ESlint)
( ) Unit Testing // 單元測試(unit tests)
( ) E2E Testing // e2e(end to end) 測試

按空格表示選擇>所在插件,按a選擇所有,按i反選
我這裏選擇
Babel 、Router 、Vuex 、CSS Pre-processors、Linter、Linter / Formatter

選擇完後直接enter,然後會提示你選擇對應功能的具體工具包,
①是否使用history router:
router
Vue-Router 利用了瀏覽器自身的hash 模式和 history 模式的特性來實現前端路由(通過調用瀏覽器提供的接口)

② css預處理器

主要爲css解決瀏覽器兼容、簡化CSS代碼 等問題。我選擇Less
在這裏插入圖片描述
③ ESLint:

提供一個插件化的javascript代碼檢測工具,ESLint + Prettier //使用較多
ESLint + Prettier
④ 何時檢測:
檢測
⑤ 單元測試 :

? Pick a unit testing solution: (Use arrow keys)
> Mocha + Chai //mocha靈活,只提供簡單的測試結構,如果需要其他功能需要添加其他庫/插件完成。必須在全局環境中安裝
Jest //安裝配置簡單,容易上手。內置Istanbul,可以查看到測試覆蓋率,相較於Mocha:配置簡潔、測試代碼簡潔、易於和babel集成、內置豐富的expect

⑥ 如何存放配置 :
存放配置
⑦ 是否保存本次配置(y:記錄本次配置,然後需要你起個名; n:不記錄本次配置):
保存本次配置
⑧ 搭建完成:
完成

2、項目結構

項目結構
精簡了很多,但還是和vue2.0有很多區別的,基本的用法變化不是特別大

① vuex(狀態管理):

vue cli 2 中 :vuex是搭建完成後自己npm install的,並不包括在搭建過程中。可以看到vue cli 2的vuex默認文件夾(store)又包含了三個js文件:action(存放一些調用外部API接口的異步執行的的方法,然後commit mutations改變mutations 數據)、index(初始化mutations 數據,是store的出口)、mutations(處理數據邏輯的同步執行的方法的集合,Vuex中store數據改變的唯一方法commit mutations)

vue cli 3 中:vuex是包含在搭建過程供選擇的預設。vue cli 3 中默認只用一個store.js代替了原來的store文件夾中的三個js文件。action、mutations、state以及store 的 getters 的用法有很多

② router (路由):
vue cli 2 :“ router/index.js ”
vue cli 3:“router.js”(用法和做的事都一樣)

去掉 static 、 新增 public 文件夾

vue cli 2 :static 是 webpack 默認存放靜態資源的文件夾,打包時會直接複製一份到dist文件夾不會經過 webpack 編譯

vue cli 3 :摒棄 static 新增了 public 。vue cli 3 中“靜態資源”兩種處理方式:

經webpack 處理:在 JavaScript 被導入或在 template/CSS 中通過“相對路徑”被引用的資源會被編譯並壓縮

不經webpack 處理:放置在 public 目錄下或通過絕對路徑被引用的資源將會“直接被拷貝”一份,不做任何編譯壓縮處理

index.html :

vue cli 2 :“index.html ”

vue cli 3 :“public/index.html ”此模板會被 html-webpack-plugin 處理的

⑤ src/views:

vue cli 3 的 src文件夾 新增 views文件夾 用來存放 “頁面”,區分 components(組件)

去掉 build(根據config中的配置來定義規則)、config(配置不同環境的參數)文件夾 :

vue cli 3 中,這些配置 你可以通過 命令行參數、或 vue.config.js (在根目錄 新建一個 vue.config.js 同名文件)裏的 devServer 字段配置開發服務器

⑦ babel.config.js:

配置Babel 。Vue CLI 使用了 Babel 7 中的新配置格式 babel.config.js。和 .babelrc 或 package.json 中的 babel 字段不同,這個配置文件不會使用基於文件位置的方案,而是會一致地運用到項目根目錄以下的所有文件,包括 node_modules 內部的依賴。官方推薦在 Vue CLI 項目中始終使用 babel.config.js 取代其它格式。

⑧ 根目錄的一些其他文件的改變:

之前所有的配置文件都在vue create 搭建時preset預設 或者 後期可以通過 命令參數 、 vue.config.js 中配置

根據需要在根目錄下新建
vue.config.js自行配置,eg:(簡單配置,更多配置詳情參見官網:https://cli.vuejs.org/zh/config/)

module.exports = {
  baseUrl: '/',// 部署應用時的根路徑(默認'/'),也可用相對路徑(存在使用限制)
  outputDir: 'dist',// 運行時生成的生產環境構建文件的目錄(默認''dist'',構建之前會被清除)
  assetsDir: '',//放置生成的靜態資源(s、css、img、fonts)(相對於 outputDir 的)目錄(默認'')
  indexPath: 'index.html',//指定生成的 index.html 的輸出路徑(相對於 outputDir)也可以是一個絕對路徑。
  pages: {//pages 裏配置的路徑和文件名在你的文檔目錄必須存在 否則啓動服務會報錯
    index: {//除了 entry 之外都是可選的
      entry: 'src/index/main.js',// page 的入口,每個“page”應該有一個對應的 JavaScript 入口文件
      template: 'public/index.html',// 模板來源
      filename: 'index.html',// 在 dist/index.html 的輸出
      title: 'Index Page',// 當使用 title 選項時,在 template 中使用:<title><%= htmlWebpackPlugin.options.title %></title>
      chunks: ['chunk-vendors', 'chunk-common', 'index'] // 在這個頁面中包含的塊,默認情況下會包含,提取出來的通用 chunk 和 vendor chunk
    },
    subpage: 'src/subpage/main.js'//官方解釋:當使用只有入口的字符串格式時,模板會被推導爲'public/subpage.html',若找不到就回退到'public/index.html',輸出文件名會被推導爲'subpage.html'
  },
  lintOnSave: true,// 是否在保存的時候檢查
  productionSourceMap: true,// 生產環境是否生成 sourceMap 文件
  css: {
    extract: true,// 是否使用css分離插件 ExtractTextPlugin
    sourceMap: false,// 開啓 CSS source maps
    loaderOptions: {},// css預設器配置項
    modules: false// 啓用 CSS modules for all css / pre-processor files.
  },
  devServer: {// 環境配置
    host: 'localhost',
    port: 8080,
    https: false,
    hotOnly: false,
    open: true, //配置自動啓動瀏覽器
    proxy: {// 配置多個代理(配置一個 proxy: 'http://localhost:4000' )
      '/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '/foo': {
        target: '<other_url>'
      }
    }
  },
  pluginOptions: {// 第三方插件配置
    // ...
  }
};

vue-cli升級到3之後,減少了很多的配置文件,將所有的配置項都濃縮到了vue.config.js這個文件中,所以學懂並會用vue.config.js文件很重要。

這裏有一篇關於vue-cli3的全面配置的文章供大家參考,https://segmentfault.com/a/1190000017008697

熱更新配置

在vue.config.js添加

chainWebpack: config => {
     // 修復HMR
     config.resolve.symlinks(true);
},

修改css部分熱更新還需要註釋掉 //extract: true,

css: {
     //extract: true,// 是否使用css分離插件 ExtractTextPlugin
     sourceMap: false,// 開啓 CSS source maps
     loaderOptions: {},// css預設器配置項
     modules: false// 啓用 CSS modules for all css / pre-processor files.
},

熱更新配置就完成

3、vue ui 圖形化界面創建項目

vue ui

在這裏插入圖片描述
登錄 localhost:8000
在這裏插入圖片描述

下面用 vue ui 圖形界面創建vue項目

創建項目
輸入項目名稱
填寫項目名稱
預設配置,選擇手動配置
預設配置
選擇功能
選擇功能
選擇配置,選項的作用在上面說過
選擇配置
最後,創建項目
是否保存預設
在這裏插入圖片描述

這裏推薦一個谷歌vue調式神器 vue-devtools :https://www.jianshu.com/p/63f09651724c
vue-devtools 各個面板詳情

文章參考:https://www.cnblogs.com/coober/p/10875647.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章