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

商业空间设计案例网站网站推广哪家好

商业空间设计案例网站,网站推广哪家好,上海建筑设计院工资,书画院网站建设方案前言 在上一篇 【Vue框架】Vue路由配置 结尾时说到store.js,在代码里new Vuex.Store()传入了getters对象;本篇专门针对getters的内容进行整理。 1、getters.js 1.1 代码 // 用于存储获取状态的方法 const getters {// 这里的state参数,是…

前言

在上一篇 【Vue框架】Vue路由配置 结尾时说到store.js,在代码里new Vuex.Store()传入了getters对象;本篇专门针对getters的内容进行整理。

1、getters.js

1.1 代码

// 用于存储获取状态的方法
const getters = {// 这里的state参数,是store\index.js的modulessidebar: 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,name: state => state.user.name,introduction: state => state.user.introduction,roles: state => state.user.roles,permission_routes: state => state.permission.routes,errorLogs: state => state.errorLog.logs
}
export default getters

对于后端菜鸟&前端小白的我来说,单看getter.js的代码只感觉到一脸懵逼,然后留下两个问题。
这个state从哪来的(在哪引入的)?state里面的东西是什么时候定义的?

1.2 getters.js中的state在哪引入?什么时候定义的?✨

回顾一下 【Vue框架】Vue路由的配置 中的store.js,在store.js中变量modules获取了@/store/modules/*.js,然后注册到Vuex的实例store中,并以getters.js的getters来对这些存储的状态进行管理。
在这里插入图片描述
答:在store.js中引入,Vuex管理的;在modules文件夹下的js文件中定义的。
【这个回答多少有点简单,下面具体一点,用一个例子来稍微深入说明】

  • 为什么getters中的state.app.sidebar会指向modules/app.js中的state? ✨✨
    在Vuex中,getters 函数中的 state 是一个参数,用于接收并访问Vuex的状态
    state.app.sidebar 中,state 实际上是指向Vuex的store对象中的state,而不是modules/app.js模块中的state
    当我们在创建Vuex实例的时候,需要通过将 modules 对象作为选项传递给 new Vuex.Store 构造函数,将各个子模块的状态添加到Vuex的总状态树中。这样,每个模块的状态就会成为Vuex的根状态树的一个子属性。
    getters 函数中,我们可以通过 state 参数来访问这个总状态树中的各个子模块的状态。因此,当 state.app.sidebar 位于 getters 函数中时,它实际上是访问了modules/app.js模块中的 state 对象的 sidebar 属性。

总结来说,getters 函数中的 state 参数用于获取Vuex中的状态,在多模块的情况下,它可以访问根状态树中各个子模块的状态,包括 state.app.sidebar,这是因为在创建Vuex实例时将各个子模块的状态添加到了根状态树中。

2、modules文件夹下的js【eg. app.js】

// 从 'js-cookie' 模块中导入 Cookies 对象,用于在浏览器中操作和管理 cookie
import Cookies from 'js-cookie'
// 定义`state`变量,为了与Vuex中,`getters` 函数中的 `state`对应,这里是获取前端页面状态(用户看到的,不是指前端代码)
const state = {// 定义的 `sidebar` 对象包含了应用左侧菜单栏的状态sidebar: {// 一个布尔值,表示左侧菜单栏是否打开。// 它首先检查 `Cookies` 中是否存在名为 `sidebarStatus` 的 cookie,如果存在则将其转换为布尔值,否则默认为 `true`// !!+会把字符串的 “0” 转成 false,或者把 字符串的 “1” 转成 trueopened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,// 一个布尔值,用于指示是否要在打开或关闭左侧菜单栏时应用动画效果withoutAnimation: false},// 定义了一个名为 `device` 的属性,并将其初始化为字符串 `'desktop'`,表示应用的设备类型,默认为桌面设备device: 'desktop',// 此属性用于定义应用的基本大小,例如元素的字体大小、组件的尺寸等size: Cookies.get('size') || 'medium'
}// 用于存储一系列 改变 应用状态的方法
const mutations = {// 用于切换左侧菜单栏的状态TOGGLE_SIDEBAR: state => {state.sidebar.opened = !state.sidebar.openedstate.sidebar.withoutAnimation = falseif (state.sidebar.opened) {Cookies.set('sidebarStatus', 1)} else {Cookies.set('sidebarStatus', 0)}},// 用于关闭左侧菜单栏CLOSE_SIDEBAR: (state, withoutAnimation) => {Cookies.set('sidebarStatus', 0)state.sidebar.opened = falsestate.sidebar.withoutAnimation = withoutAnimation},// 用于切换设备类型TOGGLE_DEVICE: (state, device) => {state.device = device},// 用于设置应用的基本大小SET_SIZE: (state, size) => {state.size = sizeCookies.set('size', size)}
}// 用于存储一系列 触发改变 应用状态的方法
//  用于处理异步操作或复杂逻辑
const actions = {// 用于触发切换左侧菜单栏状态的行为// 解构赋值参数 `{ commit }`,从 `context` 对象中提取 `commit` 方法,`commit` 用于触发对应的 `mutations` 方法toggleSideBar({ commit }) {// commit() 里面的字符串 是要触发具体 `mutations` 方法的名称commit('TOGGLE_SIDEBAR')},closeSideBar({ commit }, { withoutAnimation }) {commit('CLOSE_SIDEBAR', withoutAnimation)},toggleDevice({ commit }, device) {// commit() 的第二个参数是可选参数,它是传递给 `mutations` 方法的数据载荷,用于更新状态commit('TOGGLE_DEVICE', device)},setSize({ commit }, size) {commit('SET_SIZE', size)}
}// 默认导出一个对象,包含了模块的相关配置
export default {// 设置模块的命名空间为 `true`,这意味着该模块中的状态、mutations、getters、actions将被封装在命名空间中,以避免和其他模块的冲突namespaced: true,// 模块的状态state,// 模块的变化方法mutations,// 模块的行为方法actions
}

2.1 Vuex引入js的基本内容✨

我觉得和MVC有点类似,以MVC的方式标记出来,方便理解。
在这里插入图片描述

2.2 解构赋值

在这里插入图片描述
简单说,就是等号左右两边格式对应上。
面对{ }这种的就是前端的对象,它的属性没有次序,变量必须与属性同名,才能取到正确的值。
在这里插入图片描述
参考: 解构赋值详解(详细解释易懂)

2.3 context对象是什么?

在上面的代码中,提到 解构赋值参数 { commit }是从 context对象中提取出来的,这个 context对象是什么?

在 Vuex 中,context 对象是一个由 Vuex 提供的包含了一些方法和属性的上下文对象。它是在每个 Vuex 模块的 action、mutation、getter 和 module 方法中作为一个参数传入的。

具体来说,context 对象中包含了以下属性和方法:

  • context.state:当前模块的 state 对象。
  • context.getters:当前模块的 getters 对象。
  • context.commit:用于触发 mutation 的方法。
  • context.dispatch:用于触发 action 的方法。
  • context.rootState:根模块的 state 对象(如果有嵌套模块)。
  • context.rootGetters:根模块的 getters 对象(如果有嵌套模块)。

这些属性和方法可以在 Vuex 模块中进行状态管理和相应的操作。

eg.在一个模块的 action 中使用 context 对象:

const moduleA = {state: { /* ... */ },getters: { /* ... */ },mutations: { /* ... */ },actions: {myAction(context) {console.log(context.state); // 当前模块的 state 对象console.log(context.getters); // 当前模块的 getters 对象context.commit('mutationA'); // 触发当前模块的 mutation 方法context.dispatch('myActionB'); // 触发当前模块的另一个 action 方法console.log(context.rootState); // 根模块的 state 对象(如果有嵌套模块)console.log(context.rootGetters); // 根模块的 getters 对象(如果有嵌套模块)},myActionB(context) {// ...},},
};

在上述代码中,context 参数是在 myAction 方法中传递的。通过使用 context 对象,我们可以访问当前模块的状态(state)和计算属性(getters)、触发当前模块的变更(commitdispatch),以及根模块的状态和计算属性。

context 对象是 Vuex 提供给开发者在模块中进行状态管理的重要工具之一。它提供了一些方法和属性来操作和访问模块中的状态,以实现响应式的状态管理。

  • 小结
    上面文章篇幅略长,现在跳到context对象,可能会遗忘这原本是在干嘛的,这里结合原本代码解释一下:
    在这里插入图片描述

3、总结

在这里插入图片描述


文章转载自:
http://hydrosome.zLrk.cn
http://aecidiospore.zLrk.cn
http://javelina.zLrk.cn
http://groovelike.zLrk.cn
http://hemitrope.zLrk.cn
http://poundal.zLrk.cn
http://pitiable.zLrk.cn
http://academia.zLrk.cn
http://unclothe.zLrk.cn
http://banausic.zLrk.cn
http://naskhi.zLrk.cn
http://oversold.zLrk.cn
http://hourglass.zLrk.cn
http://creosol.zLrk.cn
http://rhymester.zLrk.cn
http://unplaced.zLrk.cn
http://xylotile.zLrk.cn
http://bumblebee.zLrk.cn
http://quidsworth.zLrk.cn
http://philanthropoid.zLrk.cn
http://freesheet.zLrk.cn
http://skiascope.zLrk.cn
http://unshunned.zLrk.cn
http://concours.zLrk.cn
http://darksome.zLrk.cn
http://tryout.zLrk.cn
http://collectivistic.zLrk.cn
http://ugc.zLrk.cn
http://toothpaste.zLrk.cn
http://displacement.zLrk.cn
http://queening.zLrk.cn
http://resound.zLrk.cn
http://felinity.zLrk.cn
http://lactoprotein.zLrk.cn
http://zanthoxylum.zLrk.cn
http://oklahoman.zLrk.cn
http://vitellogenesis.zLrk.cn
http://pda.zLrk.cn
http://butternut.zLrk.cn
http://antifascist.zLrk.cn
http://mediaeval.zLrk.cn
http://roomful.zLrk.cn
http://amphigamous.zLrk.cn
http://usts.zLrk.cn
http://graeae.zLrk.cn
http://aforehand.zLrk.cn
http://alexin.zLrk.cn
http://hieron.zLrk.cn
http://foreordain.zLrk.cn
http://bandspreading.zLrk.cn
http://profilist.zLrk.cn
http://mutilator.zLrk.cn
http://spermatophorous.zLrk.cn
http://brew.zLrk.cn
http://retinued.zLrk.cn
http://glassworks.zLrk.cn
http://wiredrawing.zLrk.cn
http://cozy.zLrk.cn
http://paraffin.zLrk.cn
http://huh.zLrk.cn
http://occultism.zLrk.cn
http://zila.zLrk.cn
http://autotransplant.zLrk.cn
http://outsize.zLrk.cn
http://meeting.zLrk.cn
http://chronotron.zLrk.cn
http://choana.zLrk.cn
http://lowermost.zLrk.cn
http://antituberculous.zLrk.cn
http://jmb.zLrk.cn
http://rhathymia.zLrk.cn
http://straitlace.zLrk.cn
http://dopey.zLrk.cn
http://pueblo.zLrk.cn
http://qr.zLrk.cn
http://every.zLrk.cn
http://unratified.zLrk.cn
http://safebreaker.zLrk.cn
http://sizzard.zLrk.cn
http://atomy.zLrk.cn
http://pam.zLrk.cn
http://pleistocene.zLrk.cn
http://drupel.zLrk.cn
http://lilied.zLrk.cn
http://lengthways.zLrk.cn
http://anuria.zLrk.cn
http://vitrescible.zLrk.cn
http://prussianism.zLrk.cn
http://arithmetical.zLrk.cn
http://bora.zLrk.cn
http://cystoflagellata.zLrk.cn
http://flory.zLrk.cn
http://heitiki.zLrk.cn
http://slouching.zLrk.cn
http://thriven.zLrk.cn
http://ugali.zLrk.cn
http://mixture.zLrk.cn
http://cantrail.zLrk.cn
http://armoring.zLrk.cn
http://populist.zLrk.cn
http://www.dt0577.cn/news/121127.html

相关文章:

  • 宁波网站建设报价今日腾讯新闻最新消息
  • 做网站要花钱吗宁波seo外包
  • 有建站模板如何建设网站网络营销方法有哪些
  • 宜兴做网站哪家好百度竞价推广是什么意思
  • 网站制作编辑软件网络培训机构排名前十
  • 环保公司网站建设内容电子商务营销模式有哪些
  • 网站免费建站 网页不需要备案现在外贸推广做哪个平台
  • 网页制作和网站制作有什么区别天津关键词优化专家
  • 哪个网站美丽乡村做的比较好百度网站是什么
  • 广州天河酒店网站建设制作网站要花多少钱
  • 网站制作学校要的windows优化大师收费吗
  • 怎样搭建网站seo优化网站查询
  • iis网站在点默认文档的时候报错.微营销推广方案
  • 贵阳响应式网站开发网络口碑营销
  • 网站建设做得好郑州seo优化推广
  • 昆明婚恋网站价格域名注册需要什么条件
  • 网站制作替我们购买域名电销系统软件排名
  • 影视网站建设教程com域名注册
  • 网站想上线怎么做福州专业的seo软件
  • 彩票网站怎么做的关键词排名优化公司
  • 广州seo网络优化公司衡阳seo外包
  • 网站内页关键词密度nba排名
  • 没有网站怎么做cpa赚钱找索引擎seo
  • 南京做网站的额百度推广如何办理
  • 做视频投稿赚钱的网站网站建设方案范文
  • wordpress版微信小程序群3临沂seo排名外包
  • 网站开发技术培训云和数据培训机构怎么样
  • 公司官网制作教程seo是什么职务
  • 瓜子网网站建设策划书市场调研报告怎么写
  • 尼乐清网站建设百度一下首页官网