This time I will bring you a detailed explanation of the steps of vuex localstorage dynamic monitoring of storage. What are the precautions for vuex localstorage of dynamic monitoring of storage steps? The following is a practical case, let's take a look.
Analysis: vue cannot monitor localstorage changes. Localstorage is mainly used to transfer values between different pages, while vue is suitable for transferring values between components. For components that share the same data and want to save the information or not lose the data when the page is refreshed (the value stored by vuex will be lost when the page is refreshed, and localstorage is stored in the local browser), you can use vuex localstorage.About the difference between vuex and storage
1. The most important difference: vuex is stored in memory, while localstorage is stored locally in the form of files2. Application scenarios: vuex is used to transfer values between components, while localstorage is mainly used to transfer values between different pages. 3. Permanence: The value stored by vuex will be lost when the page is refreshed, but localstorage will not. Note: Many students think that localstorage can be used instead of vuex. It is indeed possible for immutable data, but when two components share a data source (object or About vuex reference document: http://vuex.vuejs.org/zh-cn/index.htmlImplementation process: display user avatar information on the homepage, modify personal information in public components Take the header component as an example. When the user modifies personal information, the picture on the homepage changes in real time. If the avatar information is not stored and updated, the user will only be able to see the changes after each modification by refreshing the page or returning from other pages, that is, the newly set Avatar information, showing only the core code. 1. First define a variable in state. State is responsible for storing the state data of the entire application. You can use this.$store.state to directly obtain the state later. You can also use the mapState auxiliary function provided by vuex to map state to calculated properties.const state = { imgInfo:null //首页头像信息 }
event binding .
export const SETIMGINFO = 'SETIMGINFO' [SETIMGINFO] (state,info) { state.imgInfo=info localStorage.setItem('imgInfo',info) }
getImgInfo(state){ if(localStorage.getItem('imgInfo')){ state.imgInfo=localStorage.getItem('imgInfo') } return state.imgInfo }
mapMutations function on the page that needs to operate on storage import {mapMutations} from 'vuex' //引入mapMutations
...mapMutations([
'SETIMGINFO'
]),
this.SETIMGINFO(this.imgInfo)
//在需要的地方引用 mutations里面定义的方法
import {mapGetters} from 'vuex' computed:{ ...mapGetters([ 'getImgInfo' ]) }, watch:{ //动态监听state的变化,实时改变页面的数据 getImgInfo: function(li) { //li就是改变后的state里面的imgInfo let vm = this; this.imgInfo=li //data声明一个变量,在html引用。如果storage的值发生变化就实时刷新变量的值。 } },
6. Reference to the value of vuex in the template
<img :src="imgInfo?imgInfo:info.avatar"> //三元不等式,如果state发生变化有值就赋值给img标签,如果没有即刚进页面就赋值给create生命周期函数中从接口读出来的数据
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!
Recommended reading:
Detailed explanation of the steps to implement port reuse in Node.JsVue.js two-way binding implementation step instructionsThe above is the detailed content of Detailed explanation of vuex+localstorage dynamic monitoring storage steps. For more information, please follow other related articles on the PHP Chinese website!