为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下vuex 有没有像redux一样的debug工具?

请问一下vuex 有没有像redux一样的debug工具?

犯罪嫌疑人X 2019-09-03 10:06:06
vuex 有没有像redux一样的debug工具
查看完整描述

4 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

区分 actions 和 mutations 并不是为了解决竞态问题,而是为了能用 devtools 追踪状态变化。

事实上在 vuex 里面 actions 只是一个架构性的概念,并不是必须的,说到底只是一个函数,你在里面想干嘛都可以,只要最后触发 mutation 就行。异步竞态怎么处理那是用户自己的事情。

vuex 真正限制你的只有 mutation 必须是同步的这一点(在 redux 里面就好像 reducer 必须同步返回下一个状态一样)。同步的意义在于这样每一个 mutation 执行完成后都可以对应到一个新的状态(和 reducer 一样),这样 devtools 就可以打个 snapshot 存下来,然后就可以随便 time-travel 了。如果你开着 devtool 调用一个异步的 action,你可以清楚地看到它所调用的 mutation 是何时被记录下来的,并且可以立刻查看它们对应的状态。

亲测:如果在mutation中做了异步操作,在dev-tools中会立即打印一个snapshot,而此时异步操作还没有执行完,此时的snapshot的信息是错误的。

而在action中做异步操作dev-tools会等等异步操作执行完才去打印mutation的一个snapshot,这样便于我们回查time-travel,查看在某个mutation里的变化。


查看完整回答
反对 回复 2019-09-07
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

port {getReferPage} from '../../vuex/getters.js'
export default {
vuex: {
getters: {
referPage: getReferPage,
loginName: state => state.loginName // 用户名。同时用来判断是否已经登录
},
actions: {
logout: ({dispatch}) => {
dispatch('SIGN_OUT')
}
}
},
methods: {
// 这里!希望被调用的函数,当用户登录后loginName会改变,希望跳转到其他页面
goIndex () {
if (this.loginName) {
if (this.referPage === window.location.href) {
this.$route.router.go('index')
} else {
window.history.go(-1)
}
}
}
}



查看完整回答
反对 回复 2019-09-07
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

.安装以下模块,让webpack可以解析css文件
cnpm install style-loader --save-dev
cnpm install css-loader --save-dev
cnpm install file-loader --save-dev
2.安装elementUi模块
cnpm install element-ui@next -S11
3.在webpack.base.conf.js中添加配置
{
test: /;;;;;;;;.css$/,
loader: style!css
},
{
test: /;;;;;;;;.(eotwoffwoff2ttf)([;;;;;;;;?]?.*)$/,
loader: file
}
4.然后在 main.js 引入并注册
import Element from ;element-ui;
import ;element-ui/lib/theme-default/index.css;
Vue.use(Element)



查看完整回答
反对 回复 2019-09-07
  • 4 回答
  • 0 关注
  • 685 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信