web學習筆記(七十二)

目錄

1.vue2通過$parent實現組件傳值——父傳子

2.vue2 通過$children實現組件傳值——子傳父

3.?provide和inject傳值(依賴注入)

4.vue2如何操作dom

5.vue2如何拿到最新的dom

6.filters過濾器

7.vue2的生命周期?

8.vuex的用法


1.vue2通過$parent實現組件傳值——父傳子

通過$parent我們可以獲得父組件的整個實例對象,然后就可以直接調用this的方法和數據,不用再通過標簽內部傳遞指定的值。

 <p>{{$parent.a }}</p>
console.log(this.$parent);console.log(this.$parent.a);

2.vue2 通過$children實現組件傳值——子傳父

$children可以在父組件中獲取子組件里面的數據和方法。因為父組件里面可以有好幾個子組件,所以通過this.$children輸出結果是一個數組,然后需要調用那個子組件的方法就調用那個子組件的方法。

 this.$children[0].adddata1()

3.?provide和inject傳值(依賴注入)

嵌套組件傳值,由父組件提供數據,子組件注入數據,和vue3的用法是一樣的,都是只能實現單項數據傳值。在父組件中需要將傳遞的值寫到provide選項中,注意:return結束后要加分號

傳遞非響應式數據,可以通過對象的形式進行傳值。

  //   傳遞非響應式數據provide: {b: 200,},

傳遞響應式數據:

 provide() {return {num: () => this.a,};},

在子頁面中進行注入操作 ,但是注入后不能直接使用,需要通過計算屬性來返回一個新的屬性,才可以使用,否則無法實現響應式的效果

注入非響應式數據:

  //   注入數據inject: ['b'],

?注入響應式數據:

 //   注入數據inject: ["num",'b'],//  通過計算屬性來實現響應式的效果computed: {newnum() {return this.num();},},

4.vue2如何操作dom

在vue2中可以通過給標簽設置ref屬性給dom元素或者是子組件指定一個引用名稱,然后在組件的實例中通過$refs訪問該引用,從而操作dom元素。

<template><div><button ref="myButton" @click="handleClick">Click me</button></div>
</template><script>
export default {methods: {handleClick() {// 使用 $refs 訪問 DOM 元素this.$refs.myButton.innerText = 'Clicked!';},},
};
</script>

5.vue2如何拿到最新的dom

在vue2中可以通過this.$nextTick來獲取最新的dom。

    but() {this.$refs.pdom.innerHTML = "aaa";this.$nextTick(() => {console.log(this.$refs.pdom);});},

6.filters過濾器

主要用來過濾數據,可以同時調用多個過濾器? eg:?<p>{{ arr | guolvqi | guolvqi2 | guolvqi3 }}</p>

<template><div class="about"><p>{{ arr | guolvqi }}</p></div>
</template>
<script>
export default {name: "aboutViem",data() {return {arr: [1, 2, 3, 4, 5, 5, 6],};},filters: {guolvqi(arr) {//過濾出數組內的偶數return arr.filter((num) => num % 2 == 0);},},
};
</script>

注意:只有vue2中有過濾器,vue3中沒有過濾器。

7.vue2的生命周期?

  1. beforeCreate

    • 在實例初始化之后,數據觀測 (data observer) 和 event/watcher 事件配置之前被調用。
    • 在這個階段,實例的數據觀測和事件配置都未被初始化,因此無法訪問?datacomputedmethods?等選項中定義的內容。
    • 此時this剛剛被創建完成,組件中的data、methods還沒有往this上進行掛載。
  2. created

    • 在實例創建完成后被立即調用。
    • 在這個階段,實例已完成數據觀測 (data observer),屬性和方法的運算,watch/event?事件回調也已經初始化完成。
    • 此時this完成了data、methods的掛載,可以訪問到?datacomputedmethods?等選項中定義的內容。在這個生命周期中就可以發送組件的初始化請求了,將請求結果保存到響應式數據data中。
  3. beforeMount

    • 在掛載開始之前被調用:相關的?render?函數首次被調用。
  4. mounted

    • el 被新創建的 vm.$el 替換,并掛載到實例上去之后調用該鉤子。
    • 如果根實例掛載到了一個文檔內的元素上,當 mounted 被調用時 vm.$el 也在文檔內。
    • mounted 不會保證所有的子組件也都一起被掛載。
    • 組建的初始化請求,最早可以放在created中,最晚可以放在mounted里面。? ?
    • 此時 組件掛載完畢,頁面渲染完成。可以操作dom了(也是最早操作dom的時間)。?
  5. beforeUpdate

    • 數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。
    • 在該鉤子中,你可以進一步地更改狀態,不會導致重渲染。
  6. updated

    • 由于數據更改導致的虛擬 DOM 重新渲染和打補丁之后調用。
    • 當該鉤子被調用時,組件 DOM 已經更新,可以執行依賴于 DOM 的操作。
  7. beforeDestroy

    • 在實例銷毀之前調用。實例仍然完全可用。
    • 通常在這一步做一些清理工作,比如清除定時器、解綁全局事件等等。
  8. destroyed

    • 在實例銷毀之后調用。Vue 實例指示的所有東西都被解綁定,所有的事件監聽器被刪除。
    • 該階段 Vue 實例完全銷毀。

8.vuex的用法

用來全局共享響應式數據的,一個頁面修改了數據其他頁面也會跟著一塊更新。

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {//   聲明響應式數據的地方address:'鄭州 '},getters: {},mutations: {//   在這里定義修改state數據的方法,必須是同步修改,是同步任務,不能寫異步任務setAddress(state,val) {state.address = val;// // 通過this.$store.commit("方法名",參數)可以觸發mutations中的方法}},actions: {//   寫異步任務 做優化getlocation(context) {console.log(context);//context相當于Store對象,如果需要調用本頁面的方法和數據可以通過Store來完成任務context.commit('setAddress', '杭州')// 通過this.$store.dispatch("方法名",參數)可以觸發actions中的方法// actions使用的條件:1.異步任務;2.任務的結果必須存儲到vuex中 }},modules: {//   用來封裝Vuex,一般用不到  }
})

在組件中可以通過? $store.state.address來調用vuex中定義的數據

  <p @click="setaddress">vuex:{{ $store.state.address }}</p>

修改vuex中的值有兩種方法

 setaddress() {// 改值方法一;//   this.$store.state.address = "北京";//   改值方法二: 調用vuex的方法this.$store.commit("setAddress", "上海");},

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

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

相關文章

Oracle分析表和索引(analyze)

分析表 analyze table tablename compute statistics; 分析索引 analyze index indexname compute statistics; 該語句生成的統計信息會更新user_tables這個視圖的統計信息,分析的結果被Oracle用于基于成本的優化生成更好的查詢計劃 對于使用CBO(Cost-Base Optimization)很有好…

大數據開發需要哪些職場知識

職場是個人情世故的江湖&#xff0c;除了專業技能&#xff0c;成功的大數據開發人員還需要掌握多種職場知識。以下是一些重要的職場知識和技能&#xff0c;結合實際例子詳細說明。 目錄 理論知識與工程實踐理論知識工程實踐例子 項目經驗總結項目管理總結和反思例子 做事方式方…

一招教你搞定Windows系統指定IP不變[固定IP地址方法]

1.打開控制面板&#xff0c;找到“網絡和Internet” 點擊進入&#xff1a; 2.點擊打開“網絡和共享中心”后&#xff0c;選擇“更改適配器選項”。 3.點擊 “查看此連接的狀態”&#xff0c; 接著點擊“詳細信息” 查看信息。記錄當前的IP地址是 10.88.x.xx&#xff0c;后面我們…

Linux驅動開發筆記(九)IIC子系統及其驅動

文章目錄 前言一、IIC驅動框架二、總線驅動2.1 iic總線的運行機制2.2 重要數據結構2.2.1 i2c_driver結構體2.2.2 i2c總線結構體 2.3 匹配規則 三、設備樹的修改四、設備驅動的編寫4.1 相關API函數4.1.1 i2c_add_adapter( )4.1.2 i2c_register_driver( )4.1.3 i2c_transfer( )4.…

Spring+SpringMVC+MyBatis整合

目錄 1.SSM介紹1.1 什么是SSM&#xff1f;1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建庫建表2.2 創建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…

Redis-在springboot環境下執行lua腳本

文章目錄 1、什么lua2、創建SpringBoot工程3、引入相關依賴4、創建LUA腳本5、創建配置類6、創建啟動類7、創建測試類 1、什么lua “Lua”的英文全稱是“Lightweight Userdata Abstraction Layer”&#xff0c;意思是“輕量級用戶數據抽象層”。 2、創建SpringBoot工程 3、引入相…

新能源汽車CAN總線故障定位與干擾排除的幾個方法

CAN總線是目前最受歡迎的現場總線之一,在新能源車中有廣泛應用。新能源車的CAN總線故障和隱患將影響駕駛體驗甚至行車安全,如何進行CAN總線故障定位及干擾排除呢? 目前,國內機動車保有量已經突破三億大關。由于大量的燃油車帶來嚴峻的環境問題,因此全面禁售燃油車的日程在…

汽車租賃系統

摘 要 隨著汽車租賃市場的快速發展&#xff0c;為了提高汽車租賃服務的效率和用戶體驗&#xff0c;本論文設計與實現了一款基于Java的汽車租賃系統。 該系統采用B/S架構&#xff0c;利用JavaWeb技術和MySQL數據庫實現了車輛信息管理、在線車輛租賃、門店出車模塊、租賃訂單信息…

1. Tensorrt-llm 基礎

1.Tensorrt-llm安裝 os: ubuntu 22.04 1.1搭建docker 環境 切換到 root 用戶 sodu passwd root 更新apt sudo apt-get update --fix-missing 更新docker sudo apt-get upgrade docker-ce 安裝nvidia 容器運行時&#xff0c;避免如下錯誤 Error response from daemon…

Android Kotlin 中的閉包函數

閉包函數是現代編程語言中一個重要的概念&#xff0c;Kotlin 作為一種現代的 JVM 語言&#xff0c;自然也支持閉包函數。本文將詳細介紹閉包函數的概念、在Kotlin 中的使用方法&#xff0c;以及一些常見的應用場景。 什么是閉包函數&#xff1f; 閉包函數&#xff0c;也稱為閉…

每天一個項目管理概念之WBS

項目管理中的工作分解結構&#xff08;Work Breakdown Structure&#xff0c;簡稱WBS&#xff09;是規劃和管理項目的核心工具之一&#xff0c;它通過將復雜的項目任務細分為更小、更易管理的部分來提高項目執行的效率與效果。WBS不僅有助于明確項目范圍&#xff0c;還為時間管…

[RPI] istoreos安裝esphome

esphome可以提供了一個集成的編譯環境,同時他又可以通過無線方式更新firmware,這無疑方便了我們的開發工作。 istoreos商店沒有提供esphome,所以我們需要自己用‘類似’命令行的方式來安裝, 1. 拉取esphome鏡像 依次點擊左側邊欄Docker -> 鏡像,輸入esphome/esphome…

【LeetCode面試經典150題】117. 填充每個節點的下一個右側節點指針 II

一、題目 117. 填充每個節點的下一個右側節點指針 II - 力扣&#xff08;LeetCode&#xff09; 給定一個二叉樹&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每個 next 指針&#xff0c;讓這個指針指向其下一個右側節點。如果找不到下一個…

React@16.x(42)路由v5.x(7)常見應用場景(4)- 路由切換動畫

目錄 1&#xff0c;實現路由切換基礎樣式 2&#xff0c;使用 CSSTransition 添加動畫1&#xff0c;自定義動畫組件 *TransitionRoute.jsx*2&#xff0c;*App.jsx*3&#xff0c;樣式改動 3&#xff0c;注意點 通過一個例子來說明如何實現。 1&#xff0c;實現路由切換 基礎樣式…

[DDD] 領域驅動設計簡介

領域驅動設計 Domain Driven Design 1 DDD簡介 領域驅動設計&#xff08;Domain-Driven Design&#xff0c;簡稱DDD&#xff09;是一種軟件開發方法論&#xff0c;它強調軟件設計應緊密圍繞業務領域模型進行。DDD的核心思想是將實現與業務邏輯分離&#xff0c;通過深入理解和…

億發進銷存管理系統+:多終端無縫協同,實現經營銷售場景全覆蓋

億發軟件憑借產品、市場、業務的深入理解&#xff0c;在進銷存基礎上進行了延伸&#xff0c;推出多終端、一體化的“進銷存管理系統”多元產品矩陣。對企業經營中進貨、出貨、銷售、付款等進行全程跟蹤管理。有效輔助企業解決業務管理、銷售管理、庫存管理、財務管理等一系列問…

Java路徑操縱漏洞示例與解決賞析之一

示例代碼 public static List<File> findClassesInPackage(String codePath,String packageName, boolean recursive) {List<File> classFiles = new ArrayList<>();String packagePath = packageName.replace(., /);File directory = new File(codePath + &…

【大數據】—量化交易實戰案例雙均線策略(移動平均線)

聲明&#xff1a;股市有風險&#xff0c;投資需謹慎&#xff01;本人沒有系統學過金融知識&#xff0c;對股票有敬畏之心沒有踏入其大門&#xff0c;今天用另外一種方法模擬炒股&#xff0c;后面的模擬的實戰全部用同樣的數據&#xff0c;最后比較哪種方法賺的錢多。 量化交易…

【項目實訓】各種反爬策略及爬蟲困難點總結

在這里&#xff0c;我總結了本次項目的數據收集過程中遇到的反爬蟲策略以及一些爬蟲過程中容易出現問題的地方。 user-agent 簡單的設置user-agent頭部為瀏覽器即可&#xff1a; 爬取標簽中帶href屬性的網頁 對于顯示崗位列表的頁面&#xff0c;通常檢查其源代碼就會發現&…

深入理解鏈表:基礎概念、操作及應用

前言 鏈表&#xff08;Linked List&#xff09;是一種重要的數據結構&#xff0c;廣泛應用于各種算法和系統設計中。本文將詳細介紹鏈表的基本概念、類型、基本操作及其在實際編程中的應用&#xff0c;并使用C語言代碼示例進行說明。 鏈表的基本概念 鏈表是一種線性數據結構…