前端筆記 --- vue框架

目錄

基礎知識

指令的修飾符

計算屬性

watch偵聽器的寫法

Vue的生命周期

工程化開發&腳手架 VUE CLI

組件注冊的方式

scoped樣式沖突與原理

data

組件之間的關系和組件通信

v-model詳解

sync修飾符

Dom介紹

操作HTML標簽

總結

ref 和 $refs

$nextTick

自定義指令

安裝axios

安裝less

前端基于json設計臨時用的“接口”

插槽

1.默認插槽

2.后備內容(默認值)

3.具名插槽

4.作用域插槽(是插槽的一個 傳參語法)

單頁應用程序(SPA)& 路由介紹

路由的基本使用

VueRouter的使用(5 + 2)

組件分類

路由模塊封裝

聲明式導航

定義

兩個類名

自定義類名

跳轉傳參

路由重定向

Vue路由-404

模式設置

編程式導航

兩種跳轉方式

跳轉傳參

跳轉方式一(通過路徑跳轉):

跳轉方式二(通過name命名路由跳轉):

嵌套二級路由(子路由)

返回上一頁

組件緩存

基于VueCli自定義創建項目

ESLint代碼規范

vuex

定義與作用

構建vuex[多組件數據共享]環境

創建一個空倉庫

提供&訪問vuex的數據(核心概念 --- state狀態)

核心概念:mutations

輔助函數 mapMutations

核心概念:actions

輔助函數:mapActions

核心概念:getters

分模塊

vant組件庫

Element組件庫

項目中的vw適配問題(開發移動端必須要考慮的)

商城項目學習

圖形驗證碼功能實現

api接口模塊

Toast輕提示

響應攔截器統一處理錯誤提示

登錄權證信息存儲

vuex持久化處理---storage存儲模塊

loading效果

基于全局前置守衛,進行頁面訪問攔截處理

搜索---歷史記錄管理 功能實現

v-model實現組件數據父傳子(常用)

mixins混入

打包優化

利用ElmentUI組件實現的節流處理

Vue3


基礎知識

創建一個Vue實例,

插值表達式,

響應式,

各種指令。。。

發請求都是異步的原因:發起請求為異步的主要原因是為了避免阻塞頁面的渲染和交互。如果前端發起請求是同步的,那么在請求返回之前,瀏覽器會一直等待,頁面就會被阻塞,用戶無法進行其他操作,這會給用戶帶來不好的體驗。

route獲取數據,router跳轉。

v-html:

自定義屬性且可以動態設置。

雙向綁定指令v-model :可以讓數據 與 視圖 進行雙向綁定

filter實現刪除操作:

methods: {del(id){this.booksList = this.booksList.filter(i => i.id !== id)console.log(id)}
}

unshift實現對數組元素的增加:

add(){if(!this.subject){alert('請輸入科目')return}if(typeof this.score !== "number"){alert('請輸入正確的數據')return}this.list.unshift({id: +new Date(),subject: this.subject,score: this.score})this.subject = ''this.score = ''
}

reduce實現對數據求和的計算

computed: {totalScore(){return this.list.reduce((sum,item) => sum + item.score,0)}
},

class:與css樣式有關

指令的修飾符

計算屬性

watch偵聽器的寫法

1.簡單寫法 ----> 監視簡單類型的變化

watch: {數據屬性名 (newValue, oldValue) {一些業務邏輯 或 異步操作。 },'對象.屬性名' (newValue, oldValue) {一些業務邏輯 或 異步操作。 }
}

2.完整寫法

watch: {// watch 完整寫法數據屬性名: {deep: true, // 深度監視(針對復雜類型)immediate: true, // 是否立刻執行一次handlerhandler (newValue) {console.log(newValue)}}
}

Vue的生命周期

問題:

解決:

生命周期函數(鉤子函數):

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

工程化開發&腳手架 VUE CLI

看package.json文件:

創建項目的方法:

方法一:vue create 項目名 (目前我的電腦只有 命令提示符和Git Bath能獲取到全局vue,終端和WebStorm終端獲取不到)

方法二:npm create vue@latest

項目目錄介紹

根組件:App.vue

沒有安裝less依賴。

組件注冊的方式

局部注冊:只能在注冊的組件內使用

全局注冊:所有組件內都可以使用

注意:

組件名規范 --> 大駝峰命名法:如HmHeader

技巧:
一般都用局部注冊,如果發現確實是通用組件,再抽離到全局。

scoped樣式沖突與原理

data

組件之間的關系和組件通信

Props:

props 定義:組件上注冊的一些自定義屬性。

props校驗

非父子關系的通信

event bus 事件總線(拓展)(只是簡單場景用這個)

步驟:

例子:

發布方 接收方

非父子通信-provide-inject(拓展)

v-model詳解

原理:

對v-model進行拆解

表單類組件封裝

表單類組件封裝 & v-model簡化代碼

sync修飾符

Dom介紹

DOM樹是一個層次結構,其中每個HTML標簽都可以視為一個節點。這些節點包括但不限于:

  • 文檔節點:代表整個HTML文檔,通常以document對象表示。
  • 元素節點:代表HTML中的標簽,例如<div>, <p>, <input>等。
  • 文本節點:代表元素內的文本,例如<p>Hello, world!</p>中的"Hello, world!"。
  • 屬性節點:代表元素的屬性,例如<img src="image.jpg">中的src屬性。

HTML標簽與DOM節點

操作HTML標簽

通過DOM API,我們可以訪問并操作這些元素節點:

  • 獲取節點
    • document.getElementById('id'):根據ID獲取一個特定的元素節點。
    • document.querySelector('selector'):使用CSS選擇器獲取第一個匹配的元素節點。
    • document.querySelectorAll('selector'):使用CSS選擇器獲取所有匹配的元素節點。
  • 創建節點
    • document.createElement('tagName'):創建一個新的元素節點。
    • document.createTextNode('text'):創建一個新的文本節點。
  • 插入節點
    • parentElement.appendChild(childNode):向父節點添加一個新的子節點。
    • parentElement.insertBefore(newNode, referenceNode):在參考節點之前插入一個新節點。
  • 修改節點
    • element.setAttribute('attr', 'value'):設置元素的屬性值。
    • element.innerHTML = 'content':更改元素內部的內容。
  • 刪除節點
    • parentElement.removeChild(childNode):從父節點中移除一個子節點。
總結

DOM提供了操作HTML文檔的API,而HTML標簽則是DOM樹中的元素節點。通過這些API,我們可以獲取、創建、修改和刪除這些節點,從而動態地改變網頁的內容和布局。

ref 和 $refs

作用:利用 ref 和 $refs 可以用于獲取dom元素,或 組件實例
特點:查找范圍 ---> 當前組件內(更精確穩定)

作用一:(獲取dom,即獲取HTML的各種標簽)

作用二:

$nextTick

vue的底層是異步dom更新的。

自定義指令

全局注冊

指令的值

需求:實現一個 color 指令 - 傳入不同的顏色,給標簽設置文字顏色。

總結:

自定義 v-loading 指令

安裝axios

npm install axios 或者 yarn add axios

然后再:import axios from 'axios'

axios請求都是異步的。

安裝less

npm install --save-dev less less-loader

  1. less: 這是一個 CSS 預處理器,允許你使用變量、嵌套規則、混合、函數等特性來編寫更簡潔、可維護的 CSS 代碼。
  2. less-loader: 這是一個 Webpack 加載器,用于將 .less 文件轉換為瀏覽器可以理解的 CSS。

  • npm install: 這是 npm (Node Package Manager) 的 install 命令,用于安裝 Node.js 包。
  • --save-dev: 這個選項告訴 npm 將安裝的包添加到 package.json 文件的 devDependencies 部分。這意味著這些包只在開發過程中需要,并不是生產環境必需的。
  • less: 這是要安裝的第一個包的名稱。
  • less-loader: 這是要安裝的第二個包的名稱。

前端基于json設計臨時用的“接口”

插槽

1.默認插槽

2.后備內容(默認值)

3.具名插槽

默認插槽無法滿足,需要使用具名插槽。

4.作用域插槽(是插槽的一個 傳參語法)

單頁應用程序(SPA)& 路由介紹

路由的基本使用

VueRouter的使用(5 + 2)

npm install vue-router@3.6.5

組件分類

路由模塊封裝

好處:
拆分模塊,利于維護
快速引入組件:
基于 @ 指代 src 目錄,從 src目錄 出發找組件

聲明式導航

定義

兩個類名

自定義類名

跳轉傳參

目標:在跳轉路由時,進行傳值。

方法一:

方法二:

兩種方法比較:

方法二補充:

路由重定向

Vue路由-404

模式設置

編程式導航

兩種跳轉方式

方法一:

上面的寫法分為簡寫和完整寫法

方法二:

跳轉傳參

同樣是查詢參數傳參動態路由傳參。

跳轉方式一(通過路徑跳轉)既可以使用查詢參數傳參也可以使用動態路由傳參。

跳轉方式二(通過路由名字跳轉)也是一樣的,既可以使用查詢參數傳參也可以使用動態路由傳參。

跳轉方式一(通過路徑跳轉)

1.查詢參數傳參:

簡寫方式:

比如:

或者(完整寫法)

組件內參數的接收方式:

比如:

2.動態路由傳參:

第一步:先去配置動態路由

然后:

簡寫方式:

this.$router.push(`/路徑/參數值`)

或者(完整寫法):

比如:


?

組件內參數的接收方式:

比如:

跳轉方式二(通過name命名路由跳轉):

1.查詢參數傳參

參數接收方式:

2.動態路由傳參

第一步:先去配置動態路由

const router = new VueRouter({router: [...,{name: 'search',path: 'search/:words?',component: Search}]
})

然后

比如:

參數接收方式;

嵌套二級路由(子路由)

通過 children 配置項,可以配置嵌套子路由。

步驟:
第一步:在children配置項中,配規則

比如


第二步:準備二級路由出口

比如

返回上一頁

組件緩存

組件緩存keep-alive

舉例:

進入緩存的組件時會自動訪問生命周期鉤子函數:activated()

離開緩存的組件時會自動訪問生命周期鉤子函數:deactivated()

總結:

項目案例實現的步驟:

基于VueCli自定義創建項目

Linter:ESLint代碼規范

Vuex也可以勾上。

ESLint代碼規范

https://standardjs.com/rules-zhcn.html

JavaScript Standard Style (standardjs.com)

解決方法:

手動修正。。。

自動修正:裝插件,。。。。。

vuex

定義與作用

構建vuex[多組件數據共享]環境
創建一個空倉庫

npm install vuex@3

或者npm install vuex@3 -force

提供&訪問vuex的數據(核心概念 --- state狀態)

嚴格模式:

核心概念:mutations

傳參語法:

注意點:

輔助函數 mapMutations

核心概念:actions

輔助函數:mapActions

核心概念:getters

分模塊

模塊創建

訪問模塊中的state

訪問模塊中的getters

模塊中的mutation的調用語法

模塊中的action的調用語法

vant組件庫

第一步:

導入方式:

1.全部導入

2.按需導入(自動按需導入)

(npm i babel-plugin-import -D)

Element組件庫

安裝和使用請看官網!!!!!

項目中的vw適配問題(開發移動端必須要考慮的)

使用npm安轉插件:

npm i postcss-px-to-viewport@1.1.1 -D

商城項目學習

圖形驗證碼功能實現

api接口模塊

Toast輕提示

響應攔截器統一處理錯誤提示

登錄權證信息存儲

vuex持久化處理---storage存儲模塊

loading效果

基于全局前置守衛,進行頁面訪問攔截處理

搜索---歷史記錄管理 功能實現

v-model實現組件數據父傳子(常用)

mixins混入

可提供在所有的Vue組件中可復用的一些數據或者方法或者生命周期函數。

導入方法:

打包優化

指令:

npm run build

首屏加載慢:單頁應用程序的缺點。

解決方法:(路由懶加載)

異步組件改造舉例:

------->

利用ElmentUI組件實現的節流處理

步驟

  1. 安裝 Lodash:用于節流處理。
npm install lodash --save
  1. 創建 Loading 實例:在請求攔截器中創建 Loading 實例,并在請求開始時顯示,請求結束時隱藏。
  2. 節流處理:使用 Lodash 的 throttle 函數來控制 Loading 的顯示和隱藏。

具體操作看wgxm項目。

Vue3

未完待續。。。

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

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

相關文章

智能雙劍合璧:基于語音識別與大模型的技術沙龍筆記整理實戰

智能雙劍合璧&#xff1a;基于語音識別與大模型的技術沙龍筆記整理實戰 ——記一次網絡安全技術沙龍的高效知識沉淀 引言&#xff1a;當網絡安全遇上AI生產力工具 在綠盟科技舉辦的"AI驅動的未來網絡安全"內部技術沙龍中&#xff0c;筆者親歷了一場關于網絡安全攻…

數據結構(藍橋杯常考點)

數據結構 前言&#xff1a;這個是針對于藍橋杯競賽常考的數據結構內容&#xff0c;基礎算法比如高精度這些會在下期給大家總結 數據結構 競賽中&#xff0c;時間復雜度不能超過10的7次方&#xff08;1秒&#xff09;到10的8次方&#xff08;2秒&#xff09; 空間限制&#x…

使用 UNIX 命令在設計中搜索標識符:vcsfind 的入門指南

在現代軟件開發和硬件設計中&#xff0c;快速準確地定位和搜索特定標識符是提高開發效率的關鍵。本文將介紹如何使用 UNIX 命令 vcsfind 在設計中搜索標識符&#xff0c;幫助您更高效地管理您的項目。 什么是 vcsfind&#xff1f; vcsfind 是一個強大的 UNIX 命令行工具&#x…

第56天:Web攻防-SQL注入增刪改查盲注延時布爾報錯有無回顯錯誤處理審計復盤

#知識點 1、Web攻防-SQL注入-操作方法&增刪改查 2、Web攻防-SQL注入-布爾&延時&報錯&盲注 一、增刪改查 1、功能&#xff1a;數據查詢 查詢&#xff1a;SELECT * FROM news where id$id 2、功能&#xff1a;新增用戶&#xff0c;添加新聞等 增加&#xff1a;IN…

跳表實現學習

1.介紹 2.源碼 跳表節點&#xff1a; /* ZSETs use a specialized version of Skiplists */ /*** brief 定義跳躍表節點的數據結構。* * 該結構體用于表示跳躍表中的一個節點&#xff0c;包含元素、分數、后向指針和多層鏈表信息。*/ typedef struct zskiplistNode {sds ele;…

Python:正則表達式

正則表達式的基礎和應用 一、正則表達式核心語法&#xff08;四大基石&#xff09; 1. ?元字符&#xff08;特殊符號&#xff09;? ?定位符 ^&#xff1a;匹配字符串開始位置 $&#xff1a;匹配字符串結束位置 \b&#xff1a;匹配單詞邊界?&#xff08;如 \bword\b 匹配…

EB-Cable許可管理中的數據安全與隱私保護

在數字化時代&#xff0c;數據安全與隱私保護已成為企業關注的重中之重。作為專業的電纜管理軟件&#xff0c;EB-Cable許可管理不僅在功能豐富和操作便捷方面表現出色&#xff0c;更在數據安全與隱私保護方面為用戶提供了堅實的保障。本文將詳細介紹EB-Cable許可管理在數據安全…

串口通信函數匯總-ing

謝謝各位佬的閱讀&#xff0c;本文是我自己的理解&#xff0c;如果您發現錯誤&#xff0c;麻煩請您指出&#xff0c;謝謝 首先談談我自己對于串口的理解&#xff0c;隨便拿一個嵌入式的板子&#xff0c;它上面有兩個引腳&#xff0c;一個是rx&#xff0c;一個是tx&#xff0c;r…

如何用HTML5 Canvas實現電子簽名功能??

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一位前端勸退師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&#…

大模型開源的工具包有哪些特殊符號可以使用;SEP 是什么

大模型開源的工具包有哪些特殊符號可以使用 目錄 大模型開源的工具包有哪些特殊符號可以使用自定義特殊token:special_tokens=True一、**對話輪次分隔符(必選)**二、**系統提示標記(提升指令理解)**三、**中文特色分隔符(貼合書寫習慣)**四、**開源模型專屬符號(按文檔…

控制系統分類

文章目錄 定義與特點1. 自治系統&#xff08;Autonomous System&#xff09;與非自治系統&#xff08;Non-Autonomous System&#xff09;自治系統非自治系統 2. 線性系統&#xff08;Linear System&#xff09;與非線性系統&#xff08;Nonlinear System&#xff09;線性系統非…

通過 ElasticSearch的Python API和`curl` 命令獲取Elasticsearch 所有索引名稱

導言 在大數據管理和實時搜索場景中&#xff0c;Elasticsearch 是一款不可或缺的工具。無論是開發調試、數據維護&#xff0c;還是系統監控&#xff0c;快速列出所有索引名稱都是一個高頻需求。本文將手把手教你如何通過 Python 客戶端連接 Elasticsearch&#xff0c;并用兩種方…

2024年廣州市智能網聯汽車創新實踐年度報告

政策法規方面&#xff0c;積極推進《廣州市智能網聯汽車創新發展條例》的制定和發布&#xff0c;不斷完善法規標準體系&#xff0c;為產業創新發展營造良好政策環境&#xff1b;技術創新方面&#xff0c;企業加大研發投入&#xff0c;在自動駕駛算法、車聯網安全等關鍵領域取得…

計算機操作系統(一) 什么是操作系統

計算機操作系統&#xff08;一&#xff09; 什么是操作系統 前言一、什么是操作系統二、操作系統的作用三、推動操作系統發展的主要動力總結&#xff08;核心概念速記&#xff09;&#xff1a; 前言 當你打開電腦、點擊應用、播放音樂時&#xff0c;是誰在背后默默協調這一切&…

韋伯望遠鏡的拉格朗日點計算推導過程,包含MATLAB和python運動軌跡仿真代碼

研究過程 起源與提出&#xff1a;1687 年牛頓提出 “三體問題”&#xff0c;旨在研究三個可視為質點的天體在相互之間萬有引力作用下的運動規律&#xff0c;但因運動方程過于復雜&#xff0c;難以得到完全解。歐拉的貢獻1&#xff1a;1767 年&#xff0c;瑞士數學家萊昂哈德?…

Gateway:網關路由與登錄鑒權

在微服務架構中&#xff0c;用戶登錄和身份校驗的處理方式確實與單體應用有所不同。在單體架構中&#xff0c;一旦用戶通過身份驗證&#xff0c;其會話信息可以在整個應用范圍內共享&#xff0c;所有模塊都能訪問到用戶信息。然而&#xff0c;在微服務架構下&#xff0c;每個服…

【結構光相機的精度極限】

1. 光源波長&#xff08;(\lambda)&#xff09; 光源波長是決定結構光相機精度極限的核心因素之一。根據光學衍射極限理論&#xff0c;光的波長越短&#xff0c;能夠分辨的細節越小&#xff0c;精度越高。 理論依據&#xff1a; 根據瑞利判據&#xff08;Rayleigh Criterion&…

Vision Transformer (ViT):將Transformer帶入計算機視覺的革命性嘗試(代碼實現)

Vision Transformer (ViT)&#xff1a;將Transformer帶入計算機視覺的革命性嘗試 作為一名深度學習研究者&#xff0c;如果你對自然語言處理&#xff08;NLP&#xff09;領域的Transformer架構了如指掌&#xff0c;那么你一定不會對它在序列建模中的強大能力感到陌生。然而&am…

【實戰ES】實戰 Elasticsearch:快速上手與深度實踐-8.1.1基于ES的語義搜索(BERT嵌入向量)

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 基于Elasticsearch與BERT的語義搜索架構設計與實戰1. 傳統搜索的局限性與語義搜索的崛起1.1 關鍵詞搜索 vs 語義搜索1.2 Elasticsearch向量檢索演進歷程關鍵版本特性對比 2.…