vue項目搭建及基本結(jié)構(gòu)講解

vue實例的基本結(jié)構(gòu)袒炉,有哪些配置屬性方法?

在了解vue配置之前付材,我們首先要學(xué)會怎么創(chuàng)建一個vue項目朦拖,這里怎么搭建vue項目的環(huán)境,我就不說了厌衔,如果還有不懂的璧帝,可以自己查一下文檔

一、怎么搭建vue項目

1富寿,打開你要建立項目的文件夾睬隶,進(jìn)入cmd找到進(jìn)入當(dāng)前文件下的路徑

2,在當(dāng)前目錄下輸入“vue init webpack-simple 項目名稱(使用英文)”页徐。
image

3苏潜,到當(dāng)前項目的路徑下,安裝項目依賴包变勇,運行命令:npm install 恤左,程序會根據(jù)package.json的配置node_module依賴包

4,運行起項目搀绣,根據(jù)package.json中的配置飞袋,運行起項目,例如運行命令為:npm run dev(具體運行命令是根據(jù)項目中的配置決定的)

二豌熄,介紹一下vue項目中的文件具體作用

image

目錄結(jié)構(gòu):
├── build // 構(gòu)建發(fā)布代碼存放的位置
├── config // 配置目錄授嘀,端口號等
├── node_module // 執(zhí)行npm install產(chǎn)生的,包含項目中運行所產(chǎn)生的依賴包
├── src // 源代碼锣险,我們編輯的文件一般都在這里面
│ ├── api // 接口
│ ├── assets // 主題 字體 圖片 公告css等靜態(tài)資源
│ ├── components // 全局公用組件
│ ├── directive // 全局指令
│ ├── filtres // 全局 filter
│ ├── icons // 項目所有 svg icons
│ ├── lang // 國際化 language
│ ├── mock // 項目mock 模擬數(shù)據(jù)
│ ├── router // 路由
│ ├── store // 全局 store管理
│ │ ├── index.js //注入所有vuex相關(guān)蹄皱,并導(dǎo)出
│ │ ├── getters.js //store的計算屬性
│ │ ├── muattion.js //更改store中的狀態(tài)(唯一方法)
│ │ ├── state.js //儲存狀態(tài)
│ │ └── actions.js //維護(hù)異步數(shù)據(jù)
│ └── Tinymce // 富文本
│ ├── styles // 全局樣式
│ ├── utils // 全局公用方法
│ ├── vendor // 公用vendor
│ ├── views // view
│ ├── App.vue // 入口頁面
│ ├── main.js // 入口 加載組件 初始化等
│ └── permission.js // 權(quán)限管理
├── static // 第三方不打包資源
│ └── Tinymce // 富文本
├── .babelrc // babel-loader 配置览闰,ES代碼相關(guān)轉(zhuǎn)化配置
├── editorconfig // 項目文本相關(guān)配置
├── eslintrc.js // eslint 配置項
├── .gitignore // git 倉庫忽略的文件夾配置
├── .postcssrc.js // css相關(guān)轉(zhuǎn)化的配置
├── favicon.ico // favicon圖標(biāo)
├── index.html // html模板
└── package.json // package.json

以上是我查了一些資料,對vue項目文件夾中的具體介紹

三巷折,介紹vue的基本結(jié)構(gòu)

<template>
  <div class="hello">
    <!-- html書寫范圍 只能有一個根目錄-->
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
// js 業(yè)務(wù)實現(xiàn)邏輯
export default {
  name: "HelloWorld",
  props: {
    msg: String
  },
  data() {//這里必須返回一個初始化數(shù)據(jù)對象的函數(shù)压鉴,所以要return返回
    return {
      //初始化數(shù)據(jù)
      msg: "今天天氣真棒"
    };
  },
  beforeCreate() {
    // 組件初始化執(zhí)行的函數(shù)
    // 在beforeCreate函數(shù)執(zhí)行前,data和mothods中的數(shù)據(jù)還沒有初始化
  },
  created() {
    // data和mothods都已經(jīng)被初始化锻拘,但頁面還未顯示
    //最早只能在created中操作
  },
  beforeMount() {
    // 組件掛載前油吭,模板已經(jīng)在內(nèi)存編譯好了,
    //但尚未掛載到頁面中署拟,此時頁面還是舊的數(shù)據(jù)
  },
  mounted() {
    // 如果要通過某些插槽操作頁面上的DOM節(jié)點婉宰,最早要在mounted中進(jìn)行
    // 組件掛載后,方法執(zhí)行后推穷,頁面顯示
    // 此時組件已經(jīng)脫離了創(chuàng)建階段心包,進(jìn)入運行階段
  },
  beforeUpdate() {
    // data數(shù)據(jù)是最新的,頁面尚未和最新的數(shù)據(jù)保持同步馒铃,頁面中的顯示的數(shù)據(jù)還是舊的
    // 數(shù)據(jù)更新時調(diào)用
  },
  updated() {
    //組件更新蟹腾,方法執(zhí)行后,頁面顯示都是最新數(shù)據(jù)
  },
  beforeDestroy() {
    // 實例銷毀之前調(diào)用区宇。在這一步娃殖,實例仍然完全可用。
  },
  destroyed() {
    // Vue 實例銷毀后調(diào)用议谷。調(diào)用后炉爆,
    // Vue 實例指示的所有東西都會解綁定,所有的事件監(jiān)聽器會被移除柿隙,
    // 所有的子實例也會被銷毀叶洞。 該鉤子在服務(wù)器端渲染期間不被調(diào)用。
  },
  watch: {
    // watch監(jiān)聽方法禀崖,擅長處理的場景:一個數(shù)據(jù)影響多個數(shù)據(jù)
  },
  computed: {
    // computed擅長處理的場景:一個數(shù)據(jù)受多個數(shù)據(jù)影響
    // 計算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的衩辟。只在相關(guān)響應(yīng)式依賴發(fā)生改變時它們才會重新求值。
  },
  methods: {
    // 頁面事件的方法
  }
};
</script>
<style scoped>
/* css 界面布局代碼  scoped:防止各頁面中css互相影響 */
</style>

四波附,render 與 template

new Vue({
  el: '#app',
  components: { App },
  template: '<App/>',
 })
new Vue({
  el: '#app',
  render: h = > h(App)
 })

五艺晴,packjson中的內(nèi)容

{
  "name": "vueactualcombat",  //  項目的名字
  "version": "0.1.0",  //   項目的版本
  "private": true,  //  項目在npm將拒絕發(fā)布它
  "scripts": {
    "serve": "vue-cli-service serve",  //  項目啟動的指令配置
    "dev": "vue-cli-service serve",  //  項目啟動的指令配置
    "build": "vue-cli-service build",  //  項目打包的指令配置
    "lint": "vue-cli-service lint"  //  項目初始化的指令配置
  },
  "dependencies": {  //  能夠正常運行所依賴的包,在使用 npm install 安裝你的包時會自動安裝這些依賴
    "element-ui": "^2.4.5",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0",
    "vuex": "^3.4.0"
    ......
  },
  "devDependencies": {  //  開發(fā)應(yīng)用時所依賴的工具包掸屡,通常是一些開發(fā)封寞、測試、打包工具仅财,
// 例如 webpack狈究、ESLint、Mocha盏求。應(yīng)用正常運行并不依賴于這些包抖锥,用戶在使用 npm install 安裝你的包時也不會安裝這些依賴
    "@vue/cli-plugin-babel": "^4.5.0",
    "@vue/cli-plugin-eslint": "^4.5.0",
    "@vue/cli-plugin-router": "^4.5.0"
    ......
  }
}

在 package.json 文件里面提現(xiàn)出來的區(qū)別就是:
npm i 【包名】 --save-dev 安裝的包亿眠,會被寫入到 devDependencies 對象里面去;
npm i 【包名】 --save 安裝的包磅废,則被寫入到 dependencies 對象里面去纳像。

devDependencies  里面的插件(比如各種loader,babel全家桶及各種webpack的插件等)只用于開發(fā)環(huán)境拯勉,不用于生產(chǎn)環(huán)境竟趾,因此不需要打包;
dependencies  是需要發(fā)布到生產(chǎn)環(huán)境的宫峦,是要打包的岔帽。

六,為什么組件 data 是一個函數(shù)

1导绷,如果 data 不是一個函數(shù)山卦,Vue 會報錯
2,Vue 組件讓每個組件對象都返回一個新對象诵次,當(dāng)觸發(fā)改組件時候,數(shù)據(jù)中的 data 會自動更新成最新的數(shù)據(jù)枚碗,而不是停留在上一個組件中的舊數(shù)據(jù)

以上就是我對vue的一個大致的了解逾一;如果是同一個對象,組件多次使用會互相影響

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肮雨,一起剝皮案震驚了整個濱河市遵堵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怨规,老刑警劉巖陌宿,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異波丰,居然都是意外死亡壳坪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門掰烟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爽蝴,“玉大人,你說我怎么就攤上這事纫骑⌒牵” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵先馆,是天一觀的道長发框。 經(jīng)常有香客問我,道長煤墙,這世上最難降的妖魔是什么梅惯? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任宪拥,我火速辦了婚禮,結(jié)果婚禮上个唧,老公的妹妹穿的比我還像新娘江解。我一直安慰自己,他們只是感情好徙歼,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布犁河。 她就那樣靜靜地躺著,像睡著了一般魄梯。 火紅的嫁衣襯著肌膚如雪桨螺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天酿秸,我揣著相機(jī)與錄音灭翔,去河邊找鬼。 笑死辣苏,一個胖子當(dāng)著我的面吹牛肝箱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稀蟋,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼煌张,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了退客?” 一聲冷哼從身側(cè)響起骏融,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萌狂,沒想到半個月后档玻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡茫藏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年误趴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刷允。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡冤留,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出树灶,到底是詐尸還是另有隱情纤怒,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布天通,位于F島的核電站泊窘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烘豹,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一瓜贾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧携悯,春花似錦祭芦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至轴或,卻和暖如春昌跌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背照雁。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工蚕愤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饺蚊。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓萍诱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親污呼。 傳聞我的和親對象是個殘疾皇子砂沛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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

  • Vue.js 使用了基于 HTML 的模板語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實例的數(shù)據(jù)曙求。所有...
    致青春永恒閱讀 3,275評論 0 0
  • 前后端分離的好處就是可以使前端和后端的開發(fā)分離開來,如果使用 Django 的模板系統(tǒng)映企,我們需要在前端和后端的開發(fā)...
    ucag閱讀 2,293評論 6 11
  • ## 框架和庫的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計架構(gòu)和**解決方案**悟狱。> > 庫(lib...
    Rui_bdad閱讀 2,910評論 1 4
  • 創(chuàng)建項目 vue cli是一個基于vue.js進(jìn)行快速開發(fā)的完整系統(tǒng),通常包含三個組件堰氓,分別是: cli:@vue...
    JunChow520閱讀 2,193評論 0 0
  • Vue在Windows系統(tǒng)下本地項目的安裝與部署 轉(zhuǎn)自CSDN的:AI呂小布:https://blog.csdn....
    羅海桂閱讀 7,147評論 0 0