vuex的使用以及在项目中的配置

在main.js文件中

import Vue from ‘vue‘
import App from ‘./App.vue‘
import router from ‘./router‘
import store from ‘./store‘
import * as apiConfig from ‘@/common/api/config‘

// vue的自定义属性,可在vue文件中通过 this.apiConfig 调用
Vue.prototype.apiConfig = apiConfig

new Vue({
  render: h => h(App),
  router,
  store
}).$mount(‘#app‘)

config.js

// export const BASE_ENV = ‘pro‘
export const BASE_ENV = ‘test‘

export const ERR_SUCCESS = 2000000 // 成功

export const ERR_FAILURE = 3000000 // 失败,参数无效

export const ERR_CEASE = 3000001 // 失败,token失效

export const ERR_ERROR = 5000000 // 错误

export const OPEN_LOG = true // 是否开启日志

store/index.js

import Vue from ‘vue‘
import Vuex from ‘vuex‘
import * as actions from ‘./actions‘
import * as getters from ‘./getters‘
import state from ‘./state‘
import mutations from ‘./mutations‘
import createLogger from ‘vuex/dist/logger‘

Vue.use(Vuex)

const debug = process.env.NODE_ENV !== ‘production‘

export default new Vuex.Store({
  actions,
  getters,
  state,
  mutations,
  strict: debug,
  plugins: debug ? [createLogger()] : []
})

store/state.js

/* 内存数据状态 */
let getUserInfo = () => {
   let userInfo = window.sessionStorage.getItem(‘userInfo‘)
   try {
    userInfo = JSON.parse(userInfo)
   } catch (error) {
    userInfo = {}
   }
   return userInfo || {}
    // return {
    //     neteaseToken: ‘9c40eaa3a566064041d25834fa930bd7‘,
    //     userId: ‘a501‘
    // }
}

export default {
    // NIM SDK实例
    nim: null,
    userInfo: getUserInfo(), // 用户信息 登录时返回数据
    router_next: false, // 是否阻止路由跳转
    router_from: {}, // 上一个路由
    NIM_VAR: null, // 网易云信NIM
    listenEnd: true, // 监听结束
    im_connect: false, // 网易云信IM当前是否处于连接状态
    session_list: null, // 从云信获取的会话列表
    use_session_list: [], // 页面使用的会话列表
    now_consultant_info: {}, // 当前存储的顾问信息
    audioTimer: null // 语音定时器
}

store/mutations.js

export default {
    userInfo (state, userInfo) {
        try {
            window.sessionStorage.setItem(‘userInfo‘, JSON.stringify(userInfo))
        } catch (error) {}
        state.userInfo = userInfo
    },
    router_from (state, from) {
        state.router_from = from
    },
    router_next (state, n) {
        state.router_next = n
    },
    SET_AudioTimer (state, object) {
        state.audioTimer = object
    },
    session_list (state, array) {
        state.session_list = array
    },
    use_session_list (state, array) {
        state.use_session_list = array
    },
    now_consultant_info (state, object) {
        state.now_consultant_info = object
    },
    im_connect (state, isConnect) {
        state.im_connect = isConnect
    },
    NIM_VAR (state, object) {
        state.NIM_VAR = object
    },
    listenEnd (state, bool) { // 监听结束
        state.listenEnd = bool
    }
}

在js文件中使用vuex

import store from ‘@/store/index.js‘

let status = store.state.im_connect     // 获取im_connect

store.commit(‘im_connect‘, true)     // 改变im_connect

在vue文件中使用vuex

this.$store.state.im_connect              // 获取

this.store.commit(‘im_connect‘, true)       // 改变

原文地址:https://www.cnblogs.com/haishen/p/10973390.html

时间: 2024-12-09 07:43:19

vuex的使用以及在项目中的配置的相关文章

SiteMesh在项目中的配置

SiteMesh在项目中的配置 首先在web.xml里面增加siteMesh的配置: <filter> <filter-name>sitemesh</filter-name> <filter-class> com.opensymphony.module.sitemesh.filter.PageFilter </filter-class> </filter> <filter-mapping> <filter-name&

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.5——在项目中共享配置

问题: 取出多个模块下相同的配置 解决方案: 在顶级gradle配置文件里面使用allprojects或者subprojects块 讨论: 当你在android studio中新建android项目时,IDE创建了一个两级的gradle项目,一个配置文件在根目录下,一个在叫app的模块目录下.顶级的build.gradle有几个叫allprojects的块: 这个块是gradle的语法,所以不只是在adroid项目中,在所有基于gradle的项目中都能使用.allprojects属性来源于Gra

ORM Nhibernate框架在项目中的配置

在项目中使用 Nhibernet 时,一定要将 配置文件 .xml  编译方式设置为 嵌入式资源,否则在运行项目时就会出现错误. 以下是hibernate.cfg.xml 的配置,在配置中使用的是 Mysql 数据库 <?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"&g

webpack在项目中的配置

为什么要创建webpack.conflg.js 在执行webpack时会在项目的根目录寻找webpack.conflg.js,当然也可以通过--conflg来指定要运行的文件.webpack --config aa.js 打包过程中显示一些参数: 1.找到package.json 2.在scripts里添加如下代码(webpack后面的参数加什么参数,根据自己需要即可): "webpack":"webpack --config webpack.config.js --prog

rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签

在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clientWidth, desW = 1440, htmlFont = winW / desW * 100; window.htmlFont = htmlFont; document.documentElement.style.fontSize = htmlFont + 'px'; })() 浏览器的兼容性之Ma

项目中Zookeeper配置参数笔记

ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,具体算法可见Fast Paxos.因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解. ZooKeeper的基本运转流程: 1.选举Leader. 2.同步数据. 3.选举Leade

log4net项目中如何配置,以下详解

log4net.config配置文件 <?xml version="1.0" encoding="utf-8"?> <log4net debug="false"> <appender name="RootAppender" type="log4net.Appender.RollingFileAppender"> <lockingModel type="lo

在ASP.NET MVC3项目中,自定义404错误页面

在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置        <customErrors mode="On" defaultRedirect="~/Index/Error404">          <error statusCode

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了