vue.js - ES6里面,这两段代码是不等价的吗?(示例是vuex里action的一段,es6的展开符写法)

查看:130
本文介绍了vue.js - ES6里面,这两段代码是不等价的吗?(示例是vuex里action的一段,es6的展开符写法)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

题主在review 小萝卜丁 的vuex-shopping cart中vuex的写法。因为没系统研究过es6,所以想改写为自己更熟悉的写法,虽然没报错,但是不起效果,想了解一下应该怎么改写的。

...在es6里是展开符,或者能够分享一下这个展开的效果吗

小萝卜丁的action.js

export const changePrice = makeAction('CHANGE_PRICE')
export const changeStyle = makeAction('CHANGE_STYLE')
export const addItem = makeAction('ADD_ITEM')
export const removeItem = makeAction('REMOVE_ITEM')

function makeAction (type) {
  return ({ dispatch }, ...args) => dispatch(type, ...args)
}

我自己的actionA.js

export const changePrice = ({ dispatch }) => {dispatch('CHANGE_PRICE')}
export const changeStyle = ({ dispatch }) => {dispatch('CHANGE_STYLE')}
export const addItem = ({ dispatch }) => {dispatch('ADD_ITEM')}
export const removeItem = ({ dispatch }) => {dispatch('REMOVE_ITEM')}

解决方案

2个问题
一个是箭头函数后面有无{}的区别
第二个问题时...args必须照抄 要记得你返回的是一个函数 你现在写法函数只能处理一个参数了

这篇关于vue.js - ES6里面,这两段代码是不等价的吗?(示例是vuex里action的一段,es6的展开符写法)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆