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

网站编辑器是怎么做的百度小说风云榜排名完结

网站编辑器是怎么做的,百度小说风云榜排名完结,郑州网站推广汉狮网络,专业的做网站的在 Vuex 中,Mutation(变更) 和 Action(动作) 都是修改状态的核心机制,但职责和使用场景不同: Mutation(变更) 核心特性: 同步操作:必须是同步函…

在 Vuex 中,Mutation(变更)Action(动作) 都是修改状态的核心机制,但职责和使用场景不同:


Mutation(变更)

核心特性:
  1. 同步操作:必须是同步函数(直接修改状态)。
  2. 直接修改状态:唯一能修改 Vuex state 的方式。
  3. 可追踪性:每个 mutation 会被开发工具记录,便于调试时间旅行(state 快照)。
  4. 不可异步:不能在 mutation 中执行异步操作(否则状态变更无法追踪)。
定义方式:
// store.js
const store = new Vuex.Store({state: {count: 0},mutations: {// 基本 mutation(无参数)INCREMENT(state) {state.count++;},// 带参数的 mutationADD(state, payload) {state.count += payload.value;}}
});
触发方式:

组件中通过 commit 触发:

this.$store.commit('INCREMENT');
this.$store.commit('ADD', { value: 10 }); // 参数作为载荷(payload)

Action(动作)

核心特性:
  1. 支持异步:可在 action 中执行异步操作(如 API 请求)。
  2. 提交 Mutation:不直接修改状态,而是通过 commit 调用 mutation。
  3. 复杂逻辑:适合处理业务逻辑(如多个 mutation 组合、条件判断)。
  4. 返回 Promise:支持异步操作链式调用(如 dispatch 后处理)。
定义方式:
// store.js
actions: {// 基本 action(无参数)incrementAsync({ commit }) {setTimeout(() => {commit('INCREMENT');}, 1000);},// 带参数且返回 PromisefetchData({ commit }, payload) {return new Promise((resolve, reject) => {axios.get('/api/data', { id: payload.id }).then(response => {commit('SET_DATA', response.data); // 提交 mutation 修改状态resolve(); // 通知调用方操作完成}).catch(error => reject(error));});}
}
触发方式:

组件中通过 dispatch 触发:

// 调用异步 action
this.$store.dispatch('incrementAsync');// 带参数并处理 Promise
this.$store.dispatch('fetchData', { id: 123 }).then(() => console.log("Data loaded!")).catch(err => console.error(err));

应用场景对比

Mutation 的典型场景:
  1. 简单状态更新
    mutations: {SET_USER(state, user) {state.user = user;}
    }
    
  2. 同步计数/开关
    mutations: {TOGGLE_SIDEBAR(state) {state.isSidebarOpen = !state.isSidebarOpen;}
    }
    
Action 的典型场景:
  1. 异步 API 请求
    actions: {async login({ commit }, credentials) {const user = await api.login(credentials);commit('SET_USER', user); // 提交 mutation}
    }
    
  2. 组合多个操作
    actions: {checkout({ commit, dispatch }, cartItems) {commit('CLEAR_CART'); // 同步清空购物车dispatch('saveOrder', cartItems); // 异步保存订单},saveOrder({ commit }, items) { ... }
    }
    
  3. 条件性提交 mutation
    actions: {updateProfile({ commit, state }, data) {if (state.isLoggedIn) {commit('UPDATE_PROFILE', data);}}
    }
    

总结

特性MutationAction
职责直接修改状态调用 mutation + 业务逻辑
是否支持异步❌ 必须是同步✔️ 支持异步操作
调用方式commit('name', payload)dispatch('name', payload)
适用场景简单状态更新API 请求、复杂逻辑

设计原则
组件 → dispatch Action → commit Mutation → 修改 State → 更新视图
通过分离同步(Mutation)和异步(Action)逻辑,Vuex 保证了状态变更的可预测性和可维护性。

http://www.dtcms.com/a/591679.html

相关文章:

  • 开发建设信息的网站ajax+jsp网站开发从入门到精通
  • 宝安网站建设网站做301根目录在哪里
  • dede批量建站网页游戏平台模板
  • 电子商务网站建设的概要设计郴州seo服务
  • 做网站翻页怎么做电子商务网站的推广方式
  • 南京网站开发xuan南京乐识平台设计是做什么的
  • 用dw做的十二星座网站免费做网站改版多少钱
  • 深圳装饰公司wordpress seo 优化
  • 灵感设计网站网站营销最大的特点
  • 免费行情软件app网站红色网站优化怎么弄
  • 泉州住房和城乡建设部网站网站建设黄页免费在线观看
  • 做二手房需要用到哪些网站搜集房源网页设计重庆
  • 阿里云网站建设详细教程台州网站设计
  • 海南网站建设报价方案自己的身份已经网站备案了
  • 怎么能查到网站是哪个公司做的wordpress游戏充值
  • 新服务器做网站wordpress 支付宝个人
  • 做个静态网站多少钱dede 网站名称不显示
  • 免费的seo网站下载阿里云怎么申请域名
  • qq引流推广软件哪个好专业网站优化电话
  • 福建省建设干部网站建筑方案设计
  • 做网站需要租服务器么赣州做网站的公司
  • 分类信息网站怎么做网站开发软件有哪些免费
  • 重庆那些网站知页怎么转换wordpress
  • 担路网如何快速做网站ppt在线制作
  • 自适应网站的缺点做网站用linux哪个版本
  • a站播放量最高的视频泰安人才网app
  • 怎么做网站评论数字校园建设专题网站
  • 网站全站开发需要学什么投票小程序
  • 做网站的公司重庆智慧团建官网手机版
  • 合肥建设管理学校网站首页wordpress 评分