• vueX的使用


    vueX是跨组件通信, 创建全局对象,定义了对象的存取规则 , 当对象的属性发生改变的时候 , 所有依赖他的组件都会更新

    1,先安装  npm install vuex --save-dev

    2,新建一个store文件夹(,一般大家都这样命名写在项目文件夹里),并在文件夹下新建store.js文件,文件中引入我们的vue和vuex。

    3

    import Vue from 'vue' //加载vue
    import Vuex from 'vuex' //引入vuex
    Vue.use(Vuex) //使用他

    4、在main.js 中引入新建的vuex文件

    5,然后就是在配置你需要的东西

    const store = new Vuex.Store({  //创建一个store
           state : {   //用来存放数据的对象
               title: '卖座电影',   //头部页面的初始值
               //其他需要存放的东西可以继续放下面
               // xxx : xxx
               status : false
           },
           
           getters : {   //用来取数据
               title : state => state.title,//取值方式 es6的语法  箭头函数的简写
               status : state => state.status
           },
           
           mutations : {  //用来存数据  修改state
               updateTile :(state , payload) => {  //payload传入的数据
                   state.title = payload;  //修改title值
               },
               optionBtn :(state , payload) => {  //payload传入的数据
                   state.status = payload;  
               },
           },
           actions : {  //规范写法
               updateTile :({commit},payload) => {
                   commit('updateTile',payload)
               }
           }    
    //    modules :{
    //        login :login
    //    }
     }); 
     export default store; //导出

    6,在组件里取出我们在state里面定义的动态值 先在组件里面引入

    import { mapState  } from 'vuex'
    

      

    computed : {  //技算器方法  
                //...es6的语法把store的东西全部取出来
                ...mapState(['title']),//获取sstore里面的title , 要是还有
                ...mapState(['status'])
            },

    通过{{}}渲染到页面,

    7,改变他,如果其他组件改变了他,那你这个组件拿的也是另外一个组件改变的内容

    this.$store.commit('updateTile',res.film.name);//通过$store.commit(''updateTile', '你要改变的内容,可以静态可以动态')

    vueX的用途很广, 登录状态的处理 , 还有一些固定的页面跳转后头部要显示跳转页面里面的内容 , 出来后又要显示以前的 ,.....

    vuex持久化 刷新页面数据还在

    npm install vuex-persistedstate  --save
    

     再store的index.js里面配置

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    import createPersistedState from "vuex-persistedstate" //引入持久化
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
        state:{
            login:false,
            
        },
        getters:{
            login : state => state.login,
    
        },
        mutations : {
            updateLogin : (state , payload) => {
                state.login = payload
            }
        },
        plugins: [createPersistedState()]   //使用持久化
    })
    
    export default store;
    

      

    this.$store.state.login
  • 相关阅读:
    表、栈和队列基础
    学习记录随机算法
    202202linux基础知识点
    js去重的几种方法
    Gjc_02转WGS84坐标系(高精度)
    拖拽地图/点坐标定位(高德地图)
    利用canvas进行的图片压缩
    uniapp学习笔记(创建调试打包各个端口版本)
    uniapp页面栈
    svg路径
  • 原文地址:https://www.cnblogs.com/gfweb/p/9622281.html
Copyright © 2020-2023  润新知