2024年VueX详解及如何实现持久化_vue vuex 实现持久化 dispatch,前端开发培训心得

本文探讨了30岁前后程序员职业发展差异,强调深度学习和状态管理在提升技能的重要性。重点讲解了VueX中的mutation和action,以及大厂前端面试中的常见问题。提供了一份269页的面试题集,包括腾讯、字节跳动等公司的面试内容。
摘要由CSDN通过智能技术生成

文末

如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。

同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

vueX 中的states 在浏览器刷新后 会重置回 原属性值,并不会保留操作值.

在这里插入图片描述

Mutation:

更改 Vuex的store 中状态的唯一方法 就是提交mutation 。
每个mutation 都有一个字符串的事件类型 和 回调函数。如以下 的 changeState就是。

定义在 mutation 里的不可以被直接调用,需要store.commit('changeState')的方式进行触发

commit源码:
  commit (\_type, \_payload, \_options) {
    // check object-style commit
    const {
      type,
      payload,
      options
    } = unifyObjectStyle(_type, _payload, _options)

    const mutation = { type, payload }
    const entry = this._mutations[type]
    if (!entry) {
      if (__DEV__) {
        console.error(`[vuex] unknown mutation type: ${type}`)
      }
      return
    }
     // 专用修改state方法,其他修改state方法均是非法修改
    this.\_withCommit(() => {
      entry.forEach(function commitIterator (handler) {
        handler(payload)
      })
    })
    // 订阅者函数遍历执行,传入当前的mutation对象和当前的state
    this._subscribers
      .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
      .forEach(sub => sub(mutation, this.state))

    if (
      __DEV__ &&
      options && options.silent
    ) {
      console.warn(
        `[vuex] mutation type: ${type}. Silent option has been removed. ` +
        'Use the filter functionality in the vue-devtools'
      )
    }
  }

Action:

涉及改变数据的,使用mutations 存在业务逻辑的 就用actions
action 的提交类似于mutation,但是不同点在于 action不是直接改变状态,而提交的是mutation。 且action 可以包含任意异步操作。

action 函数接受一个 与store 实例具有相同方法和属性的 context 对象

Action 通过 store.dispatch 方法触发:

  • 标准写法:
actions: {
    increment (context) {
      context.commit('increment')
    }
  }

  • 常态写法:
    用到参数解构 来简化代码
 actions: {
  increment ({ commit }) {
    commit('increment')
  }
}

dispatch 源码:
 dispatch (\_type, \_payload) {
    // check object-style dispatch
    const {
      type,
      payload
    } = unifyObjectStyle(_type, _payload)

    const action = { type, payload }
    const entry = this._actions[type]
    if (!entry) {
      if (__DEV__) {
        console.error(`[vuex] unknown action type: ${type}`)
      }


### 文末
篇幅有限没有列举更多的前端面试题,小编把整理的前端大厂面试题PDF分享出来,一共有269页

![](https://img-blog.csdnimg.cn/img_convert/04273c2f50e58b6822663c5b2f379206.png)  

![](https://img-blog.csdnimg.cn/img_convert/081b5236ebd9ff24af676bcd4a51c99e.png)

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Vuex数据持久化的方法有很多种。一种常见的方法是使用插件,例如vue-persistedstate插件。这个插件可以将Vuex的数据存储在浏览器的本地存储中,确保数据在页面刷新后仍然可以保持不变。 使用vue-persistedstate插件非常简单。首先,你需要安装这个插件。你可以使用npm或者yarn来安装它。然后,在你的Vue项目的入口文件中,引入插件并将其添加到Vuex的配置对象中。 接下来,在Vuex的配置对象中,你可以指定需要持久化的数据。你可以选择性地指定需要持久化的模块或者指定整个Vuex存储。通过这样做,插件将会自动将这些数据存储在本地存储中,并在页面刷新后重新加载这些数据。 这样,每次用户刷新页面或者重新登录时,Vuex中的数据都会从本地存储中恢复,并保持之前的状态。这样就实现Vuex的数据持久化。这种方法可以确保在用户重新加载页面后,数据仍然可以正常显示,而不会丢失。 总结起来,你可以使用vue-persistedstate插件来实现Vuex的数据持久化,确保数据在页面刷新后仍然可以保持不变。这样,即使用户重新加载页面或者重新登录,数据也能够被恢复并正常显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vuex实现数据状态持久化](https://download.csdn.net/download/weixin_38618746/12932266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于vuex的数据持久化处理](https://blog.csdn.net/Laok0413/article/details/124260493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值