日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

七十二、Vuex实现双父组件数据共享、localStorage、mapActions和keep-alive

發布時間:2024/10/8 vue 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 七十二、Vuex实现双父组件数据共享、localStorage、mapActions和keep-alive 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2020/10/31、 周六、今天又是奮斗的一天。

@Author:Runsen

寫在前面:我是「Runsen」,熱愛技術、熱愛開源、熱愛編程。技術是開源的、知識是共享的。大四棄算法轉前端,需要每天的日積月累, 每天都要加油!!!

今天繼續深入Vuex實現雙父組件數據共享。

文章目錄

  • Vuex
  • Vuex實現雙父組件數據共享
  • 點擊熱門城市改變當前城市
  • 將所有需要點擊事件,返回首頁
  • Vuex高級使用localStorage (緩存)
  • mapActions
  • keep-alive優化網頁性能

Vuex

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態。


官方文檔:https://vuex.vuejs.org/zh/

Vuex實現雙父組件數據共享

在很多項目中,存在倉庫數據,單向傳遞到父組件。雙父組件進行數據通信,那么就要引用Vuex。

安裝Vuex:npm install Vuex --save


在main.js入口文件中使用store。

在任何組件都可以引用Vuex中的store數據:this.$store.state.city

點擊熱門城市改變當前城市

將所有需要點擊事件,返回首頁

Vuex高級使用localStorage (緩存)

Vuex高級使用localStorage ,下一次刷新的時候可以不用加載數據。

LocalStorage,它是真正的緩存機制,也就是我們通常說的磁盤緩存,他可以做到在這些場景下數據丟失:

mapActions

mapActions的使用:在使用組件的時候每次都要{{this.$store.state.city}}。

這時候就可以使用輔助函數將他映射為this.methods();

如:導入mapstate,在conputed中直接傳入數組...mapState(['city']), 指的是Vuex中的state中的city。

keep-alive優化網頁性能

當我每一次切換城市選擇頁和首頁都發起了Ajax。因此需要使用keep-alive優化網頁性能。

有時候我們不希望組件被重新渲染影響使用體驗;或者處于性能考慮,避免多次重復渲染降低性能。而是希望組件可以緩存下來,維持當前的狀態。這時候就需要用到keep-alive組件。官網釋義:

<keep-alive>包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。和<transition>相似,<keep-alive>是一個抽象組件:它自身不會渲染一個 DOM 元素,也不會出現在父組件鏈中。


但是當切換不同的城市的時候,是不需要緩存的。需要在home.vue使用鉤子函數activated。

當組件再次重新渲染的的,鉤子函數activated就判斷最后的城市和緩存中的城市是不是相同,再次發起AJax請求。

參考課程:慕課網Vue2.5->2.6->3.0 開發去哪兒網App 從零基礎入門到實戰項目開發

總結

以上是生活随笔為你收集整理的七十二、Vuex实现双父组件数据共享、localStorage、mapActions和keep-alive的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。