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

关于旅游网站建设的方案我为什么不建议年轻人做运营

关于旅游网站建设的方案,我为什么不建议年轻人做运营,wordpress tdk,给别人做网站挣钱吗文章目录 一、命名空间与全局内容的关系1. 什么是命名空间?✅ 开启命名空间 二、在命名空间模块内访问全局内容1. 访问全局 state2. 访问全局 getters3. 调用全局 mutations4. 调用全局 actions 三、示例:模块间访问与全局状态共享1. 定义模块2. 注册模块…

文章目录

  • 一、命名空间与全局内容的关系
    • 1. 什么是命名空间?
      • ✅ 开启命名空间
  • 二、在命名空间模块内访问全局内容
    • 1. 访问全局 state
    • 2. 访问全局 getters
    • 3. 调用全局 mutations
    • 4. 调用全局 actions
  • 三、示例:模块间访问与全局状态共享
    • 1. 定义模块
    • 2. 注册模块
    • 3. 测试调用
  • 四、常见问题与注意事项
      • 1. 如何在组件中访问其他模块的 state?
      • 2. 模块命名冲突问题
  • 五、总结


一、命名空间与全局内容的关系

1. 什么是命名空间?

在 Vuex 中,命名空间用于为模块提供局部作用域。开启命名空间后:

  • stategettersmutationsactions 都被限制在当前模块内。
  • 模块内访问其他模块或全局内容时需要使用特殊方式。

✅ 开启命名空间

const userModule = {namespaced: true, // 开启命名空间state: () => ({name: 'Alice'}),getters: {userName: (state) => state.name},mutations: {SET_NAME(state, newName) {state.name = newName;}},actions: {updateName({ commit }, newName) {commit('SET_NAME', newName);}}
};

在主 store 中注册模块:

import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);const store = new Vuex.Store({modules: {user: userModule // 注册带命名空间的模块},state: {appTitle: 'My Vue App'},getters: {appTitle: (state) => state.appTitle},mutations: {SET_APP_TITLE(state, title) {state.appTitle = title;}},actions: {setAppTitle({ commit }, title) {commit('SET_APP_TITLE', title);}}
});

二、在命名空间模块内访问全局内容

1. 访问全局 state

在命名空间模块内访问全局状态时,需使用 rootState

actions: {printGlobalState({ rootState }) {console.log('全局状态:', rootState.appTitle);  // 访问全局 state}
}

rootState 是访问全局状态的入口,不受命名空间限制。


2. 访问全局 getters

在命名空间模块内访问全局 getters 时,使用 rootGetters

actions: {printGlobalGetter({ rootGetters }) {console.log('全局 getter:', rootGetters.appTitle);  // 访问全局 getter}
}

rootGetters 允许访问其他模块的 getter。


3. 调用全局 mutations

在命名空间模块内调用全局 mutations,需要通过 commit 的第三个参数传入 { root: true }

actions: {updateGlobalTitle({ commit }, newTitle) {commit('SET_APP_TITLE', newTitle, { root: true });  // 调用全局 mutation}
}

✅ 第三个参数 { root: true } 指定为全局 mutation。


4. 调用全局 actions

在命名空间模块内调用全局 actions,同样需要传入 { root: true }

actions: {triggerGlobalAction({ dispatch }, newTitle) {dispatch('setAppTitle', newTitle, { root: true });  // 调用全局 action}
}

{ root: true } 确保调用的是全局 action 而非当前模块的同名 action。


三、示例:模块间访问与全局状态共享

假设有两个模块:

  • user 模块:存储用户信息
  • cart 模块:存储购物车信息

1. 定义模块

const userModule = {namespaced: true,state: () => ({name: 'Alice'}),mutations: {SET_NAME(state, newName) {state.name = newName;}},actions: {updateName({ commit }, newName) {commit('SET_NAME', newName);}}
};const cartModule = {namespaced: true,state: () => ({items: []}),mutations: {ADD_ITEM(state, item) {state.items.push(item);}},actions: {addItem({ commit, rootState, dispatch }, item) {// 使用 rootState 访问全局 stateconsole.log('当前用户:', rootState.user.name);// 调用 user 模块的 mutationdispatch('user/updateName', 'Bob', { root: true });// 本模块添加商品commit('ADD_ITEM', item);}}
};

2. 注册模块

const store = new Vuex.Store({modules: {user: userModule,cart: cartModule}
});

3. 测试调用

在组件中:

// 添加商品并修改用户名
store.dispatch('cart/addItem', { id: 1, name: 'Laptop' });console.log(store.state.user.name);  // Bob
console.log(store.state.cart.items); // [{ id: 1, name: 'Laptop' }]

四、常见问题与注意事项

1. 如何在组件中访问其他模块的 state?

即使模块使用了命名空间,在组件中仍然可以使用 mapState()mapGetters() 访问其他模块的状态:

import { mapState, mapGetters } from 'vuex';export default {computed: {...mapState('user', ['name']),     // 映射 user 模块的 state...mapGetters('cart', ['items'])   // 映射 cart 模块的 getter}
};

2. 模块命名冲突问题

开启命名空间后,同名的 mutations 和 actions 不会冲突。但调用时需要注意指定模块路径:

// 调用 user 模块的 action
store.dispatch('user/updateName', 'Alice');// 调用全局 action
store.dispatch('setAppTitle', 'New Title');

五、总结

在 Vuex 中使用命名空间模块时,如果需要访问全局内容,可以使用以下方式:

  • 访问全局 state:rootState
  • 访问全局 getters:rootGetters
  • 调用全局 mutations:commit('mutation', payload, { root: true })
  • 调用全局 actions:dispatch('action', payload, { root: true })

在实际开发中,合理使用命名空间可以更好地管理状态,避免命名冲突,并保持代码结构清晰。同时,使用全局访问能力可以灵活地在模块之间共享数据和操作。

http://www.dtcms.com/wzjs/484654.html

相关文章:

  • 天津模板建站代理搜索引擎seo外包
  • 深圳网站设计九曲在线网络培训平台
  • 企业宣传片制作软件app重庆网站seo外包
  • 郑州网站建设技术精粹天津关键词优化网站
  • 营销型企业网站建设板块设置最近时事新闻热点事件
  • 销售网站开发北京网站优化步骤
  • 利用淘宝做网站卖货到国外企业培训心得体会
  • 做企业网站多人民日报新闻
  • 广西网站建设公司东莞做网页建站公司
  • 个人网站建设免费分析知乎seo
  • 上海互联网企业网站seo优化效果
  • 丹徒网站建设报价新乡seo外包
  • 合肥餐饮网站建设陕西网页设计
  • 网页设计综合实训论文国外常用的seo站长工具
  • 百度推广免费建站友情连接出售
  • 武隆网站建设上海seo网站推广公司
  • 怎么给网站做背景微博seo营销
  • 云主机可以做几个网站营销手机都有什么功能啊
  • 电子商务网站创建的4个阶段什么软件可以优化关键词
  • 网站建设公司价格seo sem论坛
  • 深圳做网站哪家好百度法务部联系方式
  • 有哪些网站可以做ps挣钱厦门seo大佬
  • 南京市工程建设交易中心网站关键词快速排名软件价格
  • 自建网站做网上超市可行吗网络营销的重要性
  • wordpress菜单高级应用开封网站seo
  • 总算把网站设计好了公司市场营销策划方案
  • 建设125摩托车价格及图片采集站seo赚钱辅导班
  • 公司网站建设制度精准获客
  • 房产网站建设网络推广专员是干什么的
  • 大连网站开发师营销公关