【VUE】第二期——生命周期及工程化

目錄

1 生命周期

1.1 介紹?

1.2?鉤子

2 可視化圖表庫

3?腳手架Vue CLI

3.1 使用步驟

3.2 項目目錄介紹

3.3 main.js入口文件代碼介紹

4 組件化開發

4.1 組件

4.2 普通組件注冊

4.2.1 局部注冊?

4.2.2 全局注冊


1 生命周期

1.1 介紹?

Vue生命周期:就是一個Vue實例從創建 到 銷毀 的整個過程。

生命周期四個階段:① 創建 ② 掛載 ③ 更新 ④ 銷毀

1.創建階段:創建響應式數據

2.掛載階段:渲染模板

3.更新階段:修改數據,更新視圖

4.銷毀階段:銷毀Vue實例


1.2?鉤子

Vue生命周期過程中,會自動運行一些函數,被稱為【生命周期鉤子】→ 讓開發者可以在【特定階段】運行自己的代碼

示例:

<body><div id="app"><h3>{{ title }}</h3><div><button @click="count--">-</button><span>{{ count }}</span><button @click="count++">+</button></div></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {count: 100,title: '計數器'},// 1. 創建階段(準備數據)beforeCreate () {console.log('beforeCreate 響應式數據準備好之前', this.count)},created () {console.log('created 響應式數據準備好之后', this.count)// this.數據名 = 請求回來的數據// 可以開始發送初始化渲染的請求了},// 2. 掛載階段(渲染模板)beforeMount () {console.log('beforeMount 模板渲染之前', document.querySelector('h3').innerHTML)},mounted () {console.log('mounted 模板渲染之后', document.querySelector('h3').innerHTML)// 可以開始操作dom了},// 3. 更新階段(修改數據 → 更新視圖)beforeUpdate () {console.log('beforeUpdate 數據修改了,視圖還沒更新', document.querySelector('span').innerHTML)},updated () {console.log('updated 數據修改了,視圖已經更新', document.querySelector('span').innerHTML)},// 4. 卸載階段beforeDestroy () {console.log('beforeDestroy, 卸載前')console.log('清除掉一些Vue以外的資源占用,定時器,延時器...')},destroyed () {console.log('destroyed,卸載后')}})</script>
</body>

2 可視化圖表庫

官網:

Apache ECharts

餅圖渲染:

?? (1) 在創建階段后(created)初始化一個餅圖 echarts.init(dom)?


?? (2) 將更新餅圖數據代碼(echarts.setOption({ ... }))封裝,每當更新列表時調用一次,根據數據實時更新餅圖

? ?(3) 在掛載階段后(mouted)調用函數,更新一次餅圖數據?

<body><div id="app"><div class="echarts-box" id="main"></div></div><script>const app = new Vue({el: '#app',data: {list: [],name: '',price: ''},created () {// const res = await axios.get('https://applet-base-api-t.itheima.net/bill', {//   params: {//     creator: '小黑'//   }// })// this.list = res.data.datathis.getList()},mounted () {//初始化this.myChart = echarts.init(document.querySelector('#main'))//第一次渲染(無數據渲染)this.myChart.setOption({// 大標題title: {text: '消費賬單列表',left: 'center'},// 提示框tooltip: {trigger: 'item'},// 圖例legend: {orient: 'vertical',left: 'left'},// 數據項series: [{name: '消費賬單',type: 'pie',radius: '50%', // 半徑data: [// { value: 1048, name: '球鞋' },// { value: 735, name: '防曬霜' }],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]})},methods: {async getList () {//更新數據const res = await axios.get('https://applet-base-api-t.itheima.net/bill', {params: {creator: '小黑'}})this.list = res.data.data// 更新圖表(后續渲染)this.myChart.setOption({// 數據項series: [{data: this.list.map(item => ({ value: item.price, name: item.name}))}]})},}})</script>
</body>

??注意(與以前不同的點):

1.axios可以簡寫寫成axios.請求方式("請求地址", 請求數據對象)

get請求方法需要在請求數據對象里面再掛載一個params對象,然后在里面寫參數,而post直接在請求數據對象里面寫參數就行了

2.typeof后可以不加小括號(typeof 是一個一元運算符,用于返回一個表示數據類型的字符串)但是還是推薦加括號,這樣可讀性高


3?腳手架Vue CLI

Vue CLI 是Vue官方提供的一個全局命令工具

可以幫助我們快速創建一個開發Vue項目的標準化基礎架子。【集成了webpack配置】

3.1 使用步驟

  1. 全局安裝(只需安裝一次即可) yarn global add @vue/cli 或者 npm i @vue/cli -g

  2. 查看vue/cli版本: vue --version

  3. 創建項目架子:vue create project-name(項目名不能使用中文)

  4. 啟動項目:yarn serve 或者 npm run serve(命令不固定,找package.json)

記錄:使用npm源或淘寶鏡像且用yarn命令報錯

解決:切換騰訊鏡像,并且使用npm命令下載


3.2 項目目錄介紹

雖然腳手架中的文件有很多,目前咱們只需認識三個文件即可

  1. main.js 入口文件

  2. App.vue App根組件

  3. index.html 模板文件


3.3 main.js入口文件代碼介紹

//導入Vue模塊
import Vue from 'vue'
//導入App根組件
import App from './App.vue'//設置控制臺是否打印當前環境:生產環境or開發環境
Vue.config.productionTip = false//vue自動創建的實例化代碼(簡寫)
new Vue({render: h => h(App),
}).$mount('#app')//完整寫法
new Vue({//el指定Vue所管理的容器,與上述.$mount('#app')效果一樣el:"#app",//render基于App.vue創建結構渲染index.htmlrender: (createElement) => {return createElement(App)}
})

4 組件化開發

4.1 組件

語法高亮插件:

構成:

  • template:結構 (有且只能一個根元素)

  • script: js邏輯

  • style: 樣式 (可支持less,需要裝包)

讓組件支持less:

(1) style標簽,lang="less" 開啟less功能

(2) 裝包: yarn add less less-loader -D 或者npm i less less-loader -D


4.2 普通組件注冊

4.2.1 局部注冊?

特點:?只能在注冊的組件內使用

步驟:

1. 創建.vue文件(三個組成部分),可輸入vue快速創建

?

組件名規范:大駝峰命名法, 如 HmHeader?

2. 在使用的組件內先導入再注冊,最后使用

注冊語法:

// 導入需要注冊的組件
import 組件對象 from '.vue文件路徑'export default {  // 局部注冊components: {'組件名': 組件對象,}
}

例:

// 導入需要注冊的組件
import HmHeader from './components/HmHeader'export default {  // 局部注冊components: {HmHeader:HmHeaer,//或//HmHeader}
}

使用方式:

當成html標簽使用即可 <組件名></組件名>?


4.2.2 全局注冊

特點:全局注冊的組件,在項目的任何組件中都能使用

步驟:

1. 創建.vue組件(三個組成部分)

與上述一樣,此處不再贅述

2. 在main.js中進行全局注冊

Vue.component('組件名', 組件對象)

?例:

// 導入需要全局注冊的組件
import HmButton from './components/HmButton'
Vue.component('HmButton', HmButton)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72737.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SyntaxError: Unexpected keyword ‘else‘

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

Spring Boot靜態資源訪問順序

在 Spring Boot 中&#xff0c;static 和 public 目錄都用于存放靜態資源&#xff08;如 HTML、CSS、JavaScript、圖片等文件&#xff09;&#xff0c;但它們在使用上有一些細微的區別。以下是它們的詳細對比&#xff1a; 1. 默認優先級 Spring Boot 會按照以下優先級加載靜態…

windows 平臺如何點擊網頁上的url ,會打開遠程桌面連接服務器

你可以使用自定義協議方案&#xff08;Protocol Scheme&#xff09;實現網頁上點擊URL后自動啟動遠程桌面連接&#xff08;mstsc&#xff09;&#xff0c;參考你提供的C代碼思路&#xff0c;如下實現&#xff1a; 第一步&#xff1a;注冊自定義協議 使用類似openmstsc://協議…

UniApp 運行的微信小程序如何進行深度優化

UniApp 運行的微信小程序如何進行深度優化 目錄 引言性能優化 1. 減少包體積2. 優化頁面加載速度3. 減少 setData 調用4. 使用分包加載 代碼優化 1. 減少不必要的代碼2. 使用條件編譯3. 優化圖片資源 用戶體驗優化 1. 優化交互體驗2. 預加載數據3. 使用骨架屏 調試與監控 1. …

ESP32S3N16R8驅動ST7701S屏幕(vscode+PlatfoemIO)

1.開發板配置 本人開發板使用ESP32S3-wroom1-n16r8最小系統板 由于基于vscode與PlatformIO框架開發&#xff0c;無espidf框架&#xff0c;因此無法直接燒錄程序&#xff0c;配置開發板參數如下&#xff1a; 在platformio.ini文件中&#xff0c;配置使用esp32-s3-devkitc-1開發…

ASP.NET 微服務網關 Ocelot+Consul+Skywalking

ASP.NET 微服務網關 OcelotConsulSkywalking APIGateWaySample簡介網關相關技術核心其它 請求處理流程環境搭建代碼運行效果圖 APIGateWaySample Ocelot Consul Skywalking 簡介 系統設計圖 網關 API網關&#xff08;Gateway&#xff09;是一個服務器&#xff0c;是系統…

頻譜分析儀的使用

頻譜分析儀設置帶寬的方式&#xff1a; 可以利用同軸線纜來制作近場探頭&#xff1a; 區別dB和dBm兩個單位&#xff1a; 無線電波的發射功率是指在給定頻段范圍內的能量&#xff0c;通常有兩種衡量 或測量標準&#xff1a;   1、功率&#xff08;W&#xff09;&#xff1a;相…

【數據分析】轉錄組基因表達的KEGG通路富集分析教程

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹差異分析(limma)KEGG富集分析(enrichKEGG)可視化加載R包數據下載導入數據基因差異分析火山圖KEGG通路富集分析可視化通路結果另一個案例總結系統信息參考介紹 KEGG富集分析,可…

關于sqlalchemy的使用

關于sqlalchemy的使用 說明一、sqlachemy總體使用思路二、安裝與創建庫、連結庫三、創建表、增加數據四、查詢記錄五、更新或刪除六、關聯表定義 說明 本教程所需軟件及庫python3.10、sqlalchemy安裝與創建庫、連結庫創建表、增加數據查詢記錄 一、sqlachemy總體使用思路 在…

在 IntelliJ IDEA 中使用 JUnit 進行單元測試

1. 介紹 JUnit JUnit 是 Java 語言中最流行的單元測試框架之一。它基于 xUnit 設計模式&#xff0c;支持 測試自動化、斷言&#xff08;Assertions&#xff09;和測試生命周期管理&#xff0c;是 Java 開發中進行 TDD&#xff08;測試驅動開發&#xff09; 的重要工具。 JUni…

單片機的發展

一、引言 單片機自誕生以來&#xff0c;經歷了四十多年的風風雨雨&#xff0c;從最初的工業控制逐步擴展到家電、通信、智能家居等各個領域。其發展過程就像是一場精彩的冒險&#xff0c;每一次技術的革新都像是在未知的海域中開辟新的航線。 二、單片機的發展歷程 &#xff…

常見的博弈模型有哪些

常見的博弈模型有哪些 目錄 常見的博弈模型有哪些**1. 重復博弈(Repeated Game)****2. 進化博弈論(Evolutionary Game Theory)****3. 機制設計(Mechanism Design)****4. 微分博弈(Differential Game)****5. 貝葉斯博弈(Bayesian Game)****6. 合作博弈(Cooperative G…

【MySQL-數據類型】數據類型分類+數值類型+文本、二進制類型+String類型

一、數據類型分類 二、數值類型 1.bit類型 測試環境ubuntu 基本語法&#xff1a; bit[(M)]&#xff1a;位字段類型&#xff0c;M表示每個值的位數&#xff0c;范圍從1&#xff5e;64&#xff1b;如果M被忽略&#xff0c;默認為1舉例&#xff1a; create table testBit(id i…

golang從入門到做牛馬:第一篇-我與golang的緣分,go語言簡介

還記得2018年的夏天,剛畢業的我不知道該做些什么,于是自學了一周的go語言,想要找一份go語言工作的代碼,當時的go還沒有go mod來管理依賴包,在北京找了一個月的工作,找到了一個小公司做了后端開發,當然使用go語言開發,帶著興奮勁,年輕身體也好,邊努力學習,邊工作。 時…

【數據庫】MySQL常見聚合查詢詳解

在數據庫操作中&#xff0c;聚合查詢是非常重要的一部分。通過聚合查詢&#xff0c;我們可以對數據進行匯總、統計和分析。MySQL提供了豐富的聚合函數來滿足不同的需求。本文將詳細介紹MySQL中常見的40個聚合函數及其使用場景&#xff0c;并通過8個的案例展示它們的用法。 一、…

調研:如何實現智能分析助手(Agent)(AutoCoder、FastGPT、AutoGen、DataCopilot)

文章目錄 調研&#xff1a;如何實現智能分析助手&#xff08;Agent&#xff09;&#xff08;AutoCoder、FastGPT、AutoGen、DataCopilot&#xff09;一、交互流程二、數據流程三、架構分類四、開源產品4.1 AutoCoder&#xff08;知識庫變體&#xff09;4.2 FastGPT&#xff08;…

【Vue CLI腳手架開發】——6.scoped樣式

文章目錄 一、scoped是什么二、應用案例1.使用代碼2.原理3父組件App未添加scoped影響 一、scoped是什么 我們知道vue為了防止css樣式污染&#xff0c;在每個組件中提供了 scoped屬性進行限定css作用域&#xff1b;當<style>標簽有 scoped 屬性時&#xff0c;它的 CSS 只…

高精算法的用法及其優勢

高精度問題是指當數據的位數非常大&#xff08;超出標準數據類型的范圍&#xff09;時&#xff0c;如何進行計算和存儲的問題。常見場景包括大整數的加、減、乘、除、取模等操作。以下是解決高精度問題的常用方法與技巧&#xff1a; 一、數據存儲 數組存儲 用整型數組存儲&am…

VM+CentOS虛擬機

關于VMCentOS虛擬機的配置和使用&#xff0c;可以參考以下博客中的詳細教程&#xff1a; **一、VMCentOS虛擬機配置** 1. **虛擬機網絡配置** - 在VMware中&#xff0c;點擊“編輯”→“虛擬網絡編輯器”&#xff0c;選擇VMnet8并進行相關設置。 - 子網IP可以改成如192.168.1…

設置 CursorRules 規則

為什么要設置CursorRules&#xff1f; 設置 CursorRules 可以幫助優化代碼生成和開發流程&#xff0c;提升工作效率。具體的好處包括&#xff1a; 1、自動化代碼生成 &#xff1a;通過定義規則&#xff0c;Cursor 可以根據你的開發需求自動生成符合規定的代碼模板&#xff0c…