当前位置: 首页 > news >正文

一个网站两个数据库阳朔县建设规划局网站

一个网站两个数据库,阳朔县建设规划局网站,linux 网站配置,国家高新技术企业证书图片Vue 2.0 中的 Vuex Store 状态管理器核心概念和组成部分 State#xff08;状态#xff09;#xff1a; Vuex Store 的核心就是集中式存储应用的所有组件的状态。它是一个单一状态树#xff0c;所有的组件都从这个状态树中读取数据并可以响应状态的变化。 const state {c…Vue 2.0 中的 Vuex Store 状态管理器核心概念和组成部分 State状态 Vuex Store 的核心就是集中式存储应用的所有组件的状态。它是一个单一状态树所有的组件都从这个状态树中读取数据并可以响应状态的变化。 const state {count: 0,user: null,// 更多的状态... }Getters获取器 类似于 Vue 组件中的计算属性Getters 接受 State 作为输入并返回处理过的状态数据。它们允许你定义从 State 派生出的新状态且当 State 改变时自动更新。 const getters {formattedCount: state Count is ${state.count},loggedInUser: state state.user state.user.loggedIn ? state.user : null,// 更多的获取器... }Mutations突变) 修改 Vuex Store 中的状态的唯一方式是通过提交 mutation。每个 mutation 都是一个纯函数接受 State 作为第一个参数并接收 payload 作为额外参数来修改 State。 const mutations {increment(state) {state.count;},setUser(state, user) {state.user user;},// 更多的突变... }Actions动作 Actions 是用于触发 mutations 并包含异步操作的地方。它们通常用来执行异步逻辑如 AJAX 请求并在完成后提交 mutation 来改变 State。某些情况下可能需要通过异步操作来设置某个store状态这时可以创建一个action来处理整个过程并在成功后调用mutation更新状态。 const actions {async incrementAsync({ commit }) {setTimeout(() {commit(increment);}, 1000);},fetchUser({ commit }) {return axios.get(/api/user).then(response {commit(setUser, response.data);});},// 更多的动作... }Modules模块 在大型应用中Store 可以被细分为多个模块每个模块拥有自己的 State、Getters、Mutations 和 Actions。这样有助于组织代码使得状态管理更加清晰和可维护。 // example module const userModule {state: { ... },getters: { ... },mutations: { ... },actions: { ... }, }export default new Vuex.Store({modules: {user: userModule,// 其他模块...} })完整应用示例 文件结构 store/modules/…被细分的模块 store/index.js总和被细分的模块 store/getters.js接受 State 作为输入并返回处理过的状态数据 State 改变时自动更新。 main.js:引入store并应用到vue 以细分模块user.js为例 1user.js import { login, logout } from /api/login /* 自己封装的登录退出请求*/ import { getToken, setToken, removeToken } from /utils/auth /*cookie管理token文件*/ const user {state: {token: getToken(),userName: localStorage.getItem(userName)||,//用户名permissions: [],isRouter:true,isLargeScreen:JSON.parse(localStorage.getItem(isLargeScreen)||true),//全屏显示驾驶舱},mutations: {SET_TOKEN: (state, token) {state.token token},USER_NAME: (state, userName) {state.userName userName},SET_PERMISSIONS: (state, permissions) {state.permissions permissions},IS_ROUTER: (state, isRouter) {state.isRouter isRouter},IS_LargeScreen(state, isLargeScreen){state.isLargeScreen isLargeScreen},changeStateMutations1(state, data) {//data:{key:需要修改的名data修改的内容}state[data.key] data.data;if (typeof(state[data.key]) ! undefined) {return true;} else {return false;}},system_ID:(state, systemId){state.systemId systemId},IS_System:(state, isSystem){state.isSystem isSystem}},actions: {setSuperAdminType({ commit, state }, view) {return new Promise(resolve {resolve([...state.superAdminType])})},// 登录Login({ commit }, userInfo) {const username userInfo.username.trim()const password userInfo.passwordreturn new Promise((resolve, reject) {login(username, password).then(res {//console.log(res.isAiAdmin,登录返回值);setToken(res.content.token)commit(SET_TOKEN, res.content.token)//用户名localStorage.setItem(userName,res.content.userName)commit(USER_NAME, res.content.userName)resolve()}).catch(error {reject(error)})})},// 退出系统LogOut({ commit, state }) {return new Promise((resolve, reject) {logout({token:state.token}).then(() {commit(SET_TOKEN, )commit(USER_NAME, [])removeToken()resolve()}).catch(error {reject(error)})})},// 前端 登出FedLogOut({ commit }) {return new Promise(resolve {commit(SET_TOKEN, )removeToken()resolve()})},//修改数据changeStateData(context, data) {//data:{key:需要修改的名data修改的内容}context.commit(changeStateMutations1, data)},} }export default user 2/utils/auth机制跟localstorage类似可以不用该文件 import Cookies from js-cookieconst TokenKey Admin-cms-Tokenexport function getToken() {return Cookies.get(TokenKey) }export function setToken(token) {return Cookies.set(TokenKey, token) }export function removeToken() {return Cookies.remove(TokenKey) }3getters.js const getters {sidebar: state state.app.sidebar,size: state state.app.size,device: state state.app.device,visitedViews: state state.tagsView.visitedViews,cachedViews: state state.tagsView.cachedViews,token: state state.user.token,avatar: state state.user.avatar,userName: state state.user.userName,introduction: state state.user.introduction,permissions: state state.user.permissions,permission_routes: state state.permission.routes,topbarRouters:state state.permission.topbarRouters,defaultRoutes:state state.permission.defaultRoutes,sidebarRouters:state state.permission.sidebarRouters,isRouter: state state.user.isRouter,isLargeScreen:state state.user.isLargeScreen,} export default getters(4)index.js import Vue from vue import Vuex from vuex import app from ./modules/app import user from ./modules/user import tagsView from ./modules/tagsView import permission from ./modules/permission import settings from ./modules/settings import getters from ./gettersVue.use(Vuex)const store new Vuex.Store({modules: {app,user,tagsView,permission,settings},getters }) export default store(5)main.js中引入store并运用到vue上 import Vue from vueimport Cookies from js-cookieimport Element from element-ui import ./assets/styles/element-variables.scssimport /assets/styles/index.scss // global css import /assets/styles/ruoyi.scss // ruoyi css import ./assets/icons import Common from /utils/common.js;import App from ./App import store from ./store import router from ./router import directive from ./directive // directive import plugins from ./plugins // pluginsimport ./permission // permission control import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from /utils/ruoyi; // 分页组件 import Pagination from /components/Pagination; //右上角菜单 import TopMenu from /components/topMenu; // 自定义表格工具组件 import RightToolbar from /components/RightToolbar // 分页组件 import newInput from /components/newInput;// 头部标签组件 import VueMeta from vue-meta// 全局方法挂载 Vue.prototype.parseTime parseTime Vue.prototype.resetForm resetForm Vue.prototype.addDateRange addDateRange Vue.prototype.selectDictLabel selectDictLabel Vue.prototype.selectDictLabels selectDictLabels Vue.prototype.handleTree handleTree// 全局组件挂载 Vue.component(Pagination, Pagination) Vue.component(RightToolbar, RightToolbar) Vue.component(newInput, newInput) Vue.component(TopMenu, TopMenu)Vue.use(directive) Vue.use(plugins) Vue.use(VueMeta) Vue.use(Common)Vue.use(Element, {size: Cookies.get(size) || medium // set element-ui default size })Vue.config.productionTip falsenew Vue({el: #app,router,store,render: h h(App) })
http://www.zqtcl.cn/news/983463/

相关文章:

  • 湘潭高新区建设局网站旅游做攻略的网站有哪些
  • wordpress网站云备份网站模块插件是怎么做的
  • 郑州市城乡建设规划网站深圳十佳设计公司排名
  • 上海建设项目环保验收公示网站两新支部网站建设
  • 网站开发移动端网络系统软件应用与维护
  • 浙江网站建设营销网站后台管理系统一般用户名是什么
  • 网站 空间 租用wordpress搬家需要修改
  • 做网站推广怎么找客户网站换空间 seo
  • ipad网站开发seo哪家强
  • 昆明网站建设猫咪科技公司资料模板
  • 网站系统开发做网站需要填什么
  • 网站的数据库丢失建筑素材网
  • 个人网站做短视频pathon能做网站开发吗
  • 客户网站制作管理系统网站程序 wap pc 同步
  • 天津手动网站建设调试百度医院网站建设
  • ppt网站源码今天哈尔滨最新通告
  • asp网站乱码广州制作网页设计
  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻