vue項目準備與骨架搭建(一)

来源:https://www.cnblogs.com/chenyingying0/archive/2020/03/31/12608666.html
-Advertisement-
Play Games

首先保證這些條件滿足: 然後全局安裝vue cnpm install -g vue-cli 安裝完成後可以使用vue -h查看vue的幫助文檔 vue -list 查看vue支持的模板 我們接下來會用到的是webpack vue init webpack mall 項目名輸入必須是英文,我這裡輸入m ...


首先保證這些條件滿足:

 

 

然後全局安裝vue

cnpm install -g vue-cli

安裝完成後可以使用vue -h查看vue的幫助文檔

 

 

vue list 查看vue支持的模板

我們接下來會用到的是webpack

 

 

vue init webpack mall

項目名輸入必須是英文,我這裡輸入mall

 

 為什麼不選擇npm install呢,因為我們選擇的是cnpm install

 

接下來就根據上面黃色字體的提示來操作

cd mall

cnpm install

 

安裝完成後打開項目,找到根目錄下的 .eslintric.js文件

可以配置自己的代碼風格,然後通過命令行自動來修改

 

 

cnpm run lint -- --fix

修正

 

 

修改webpack配置

config目錄下的index.js

 

 

cnpm run dev

 

 

再開一個cmd,使用ipconfig查看自己的ip地址

 

 

在瀏覽器訪問:192.168.56.1:8080

 

 

文件和目錄結構

在src--assets目錄下,新建fonts/img/js/scss四個目錄

這邊存放的是公共的文件,如果是組件特有的文件,會跟自己的組件放在一起

 

在src目錄下,創建四個目錄:

pages (頁面組件)

base (公共組件,可以移植到其他項目中)

api (使用ajax或者jsonp與後端交互相關的)

 

公共資源的準備:

圖標字體,阿裡巴巴矢量圖標庫下載

將下載到的圖標字體文件放置到項目的fonts目錄中

iconfont.css文件放到scss目錄中,並重命名為_icons.scss(通常下劃線表示該文件不直接引用,而是在別的scss文件中引用)

打開_icons.scss,修改下正確的字體路徑,並且格式化代碼

 

_reset.scss 基本的樣式重置文件

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, hr, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, input, button, select, textarea,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  box-sizing: border-box;

  padding: 0;
  margin: 0;

  font: inherit;
  font-size: 100%;
  vertical-align: baseline;

  border: none;
  outline: none;

  -webkit-tap-highlight-color: transparent; // 去掉點擊對象時預設的灰色半透明覆蓋層(iOS)或者虛框(Android)
  -webkit-user-select: none; // 禁止選擇文字
}

html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; // 禁止文字自動調整大小(預設情況下旋轉設備的時候文字大小會發生變化)
  //-webkit-overflow-scrolling: touch;
  -webkit-font-smoothing: antialiased; // 字體抗鋸齒
  -moz-osx-font-smoothing: grayscale;
}
input, select, textarea {
  border: none;
  -webkit-appearance: none; // 清除內陰影
  -webkit-user-select: auto !important; // 否則ios下輸入框無法輸入
}
textarea {
  overflow: auto;
  resize: none;
}
h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}
address, caption, cite, code, dfn, th, var, i, em {
  font-style: normal;
}
abbr, acronym { // 去掉firefox下此元素的邊框
  border: none;
  font-variant: normal;
}

ul, ol {
  list-style: none;
}

del {
  text-decoration: line-through;
}
ins, a {
  text-decoration: none;
}
a, img {
  -webkit-touch-callout: none; // 禁用長按頁面時的彈出菜單(iOS下有效)
}
img {
  border: none;
  /*display: block;*/
  vertical-align: top;
}

table { // 去掉各table cell的邊距並讓其邊重合
  border-spacing: 0;
  border-collapse: collapse;
}

blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
}

//統一上標和下標
sub, sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}

 

關於變數設置的_variables.scss

存放了一些可能會多次使用到的變數如:顏色、背景顏色、字體大小、尺寸、z-index

//color
$icon-color-default: #fff;
$icon-color: #ccc;
$link-active-color: #de181b;
$border-color: #e5e5e5;

//bgc
$bgc-theme: #f5f5f5;
$header-bgc: rgb(222, 24, 27);
$header-bgc-translucent: rgba(222, 24, 27, 0.9);
$modal-bgc: rgba(0, 0, 0, 0.4);

//font size
$font-size-base: 12px;
$font-size-l: $font-size-base + 2;
$icon-font-size-sm: 18px;
$icon-font-size: 24px;

//z-index
$navbar-z-index: 1000;
$tabbar-z-index: 1000;
$backtop-z-index: 1100;
$search-z-index: 1200;
$product-z-index: 1200;
$search-popup-z-index: $search-z-index + 10;
$category-popup-z-index: $search-z-index - 10;

//size
$navbar-height: 50px;
$tabbar-height: 50px;

 

_mixins.scss存放所有的mixin

@import "variables";

// flex-center
@mixin flex-center($direction: row) {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: $direction;
}

//ellipsis
@mixin ellipsis() {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

//multi line ellipsis 存在一定相容性
@mixin multiline-ellipsis($num: 2) {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: $num;
  -webkit-box-orient: vertical;
  white-space: normal !important;
  word-wrap: break-word;
}

 

_base.scss 當前項目的基本樣式

@import "mixins";//mixin文件中引入了變數文件,因此這裡不需要再次引用

body, button, input, select, textarea {
  color: #5d656b;
  font-size: $font-size-base;
  //針對移動端設置的字體
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", STHeiti, "Microsoft Yahei", Tahoma, Simsun, sans-serif;
  line-height: 1;
}
body {
  background-color: #eee;
}
a {
  color: #686868;
  text-decoration: none;

  &:active {
    color: $link-active-color;
  }
}

html, body {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

 

初始化項目:

修改根目錄下的index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
    <title>mall</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

 

修改main.js,這個才是項目的主入口,而不是index.html

引入剛纔寫的index.scss樣式文件

 

 

再來安裝一些要用到的插件:

babel-polyfill 把ES6語法轉成低版本的

fastclick 解決移動端點擊300ms延遲的問題

cnpm install --save babel-polyfill fastclick

 

補充,我在vscode終端使用cnpm下載插件,報錯提示:

PS C:\Users\96579\mall> cnpm install --save babel-polyfill fastclick
cnpm : 無法載入文件 C:\Users\96579\AppData\Roaming\npm\cnpm.ps1,因為在此系統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=1
35170 中的 about_Execution_Policies。

然後嘗試cnpm -v,也是報錯:

 

 解決方法:

以管理員身份運行powershell
執行:get-ExecutionPolicy,顯示Restricted,表示狀態是禁止的
然後執行set-ExecutionPolicy RemoteSigned

輸入A Enter就解決了

 

 

安裝成功

 

 

修改main.js,引入剛纔下載的兩個模塊

 

 

接下來要安裝組件

cnpm install --save-dev node-sass [email protected]

node-sass 幫助vue識別scss文件

sass-loader  vue只識別js文件,幫助vue識別其他資源文件(版本號你可以自己選)

 

 

修改App.Vue 這是根組件

 

 

修改config--webpack.base.conf.js

給經常使用的一些文件路徑設置別名

 

 

修改router--index.js

 

 

現在查看頁面:

 

 

由於剛纔修改了webpack中的路徑別名,因此需要重啟下

ctrl+c 先退出

然後npm start

查看package.json可以看到start和npm run dev是一樣的

 

 

有時候vue會報大段大段的錯誤,通常是因為格式不正確

可能就是多了空格或者少了空格之類的,根據提示信息去修改就好了

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、為什麼要學習html5 a、2010年出(十分年輕) b、跨平臺運行(花心=.=) c、硬體要求低(這是不可能的,H5時代,開幾個網頁都占幾g記憶體→.→) d、flash之外的選擇(flash要漸漸退出歷史舞臺T.T,曾經的4399) 2、軟硬體環境 a、硬體:正常電腦都可以(滑稽) b、系統: ...
  • 1 完整代碼下載 https://pan.baidu.com/s/1JJyVcP2KqXsd5G6eaYpgHQ 提取碼 3fzt (壓縮包名: 2020-3-24-demo.zip) 2 圖片展示 3 主要代碼 1 "use strict" 2 3 ;(function (){ 4 5 //是否支 ...
  • 一、這一節講解的是背景圖片開始的位置也是可以設置的: background-orgin:數值值; 這裡的屬性值就是開始的位置,可分為: padding-left(預設);content-box;border-box <style> *{ margin:0; padding;0; } ul li{ l ...
  • 指令是以數據去驅動DOM行為,簡化DOM操作。常用指令如下 v-text innertext,不能解析文本中的html標簽 v-html innerhtml,可解析文本中的html標簽 v-show 控制元素的顯示、隱藏 v-if、v-else-if、v-else 滿足條件才顯示對應的元素 v-fo ...
  • 接上篇 https://www.cnblogs.com/chenyingying0/p/12608666.html 為什麼導航不使用fixed定位: 首先解釋下,手機端的頭部導航和底部導航,位置一般都是固定不變的 但是我們這裡不使用固定定位fixed,因為它在手機端的相容性並不好 我們可以設置總容器 ...
  • vue是國人開發的一個js框架,國人用得比較多。 Vue等框架與jQuery的區別 jQuery基於dom操作 Vue框架以數據驅動、組件化開發為核心 下載vue.js 如果安裝了node,執行命令 npm install vue 下載vue.js,可在vue後面加上 @版本號 指定要下載的vue. ...
  • 一、HTML 媒體(Media) 1.1HTML 多媒體 Web 上的多媒體指的是音效、音樂、視頻和動畫。 現代網路瀏覽器已支持很多多媒體格式。 1.2什麼是多媒體? 多媒體來自多種不同的格式。它可以是您聽到或看到的任何內容,文字、圖片、音樂、音效、錄音、電影、動畫等等。 在網際網路上,您會經常發現嵌 ...
  • 什麼是 XHTML?XHTML 是以 XML 格式編寫的 HTML。 XHTML 指的是可擴展超文本標記語言 XHTML 與 HTML 4.01 幾乎是相同的 XHTML 是更嚴格更純凈的 HTML 版本 XHTML 是以 XML 應用的方式定義的 HTML XHTML 是 2001 年 1 月發佈 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...