收藏
回答

函数式的setData能否实现?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 setData 客户端 6.7.3 2.0.0

- 函数式的setData能否实现?



- 小程序的数据绑定必须通过this.setData({},callback)这种形式才能改变。业务逻辑比较复杂时,可能setData使代码没那么精简。所以希望微信官方能让setData支持函数式的。这样方便开发复杂的功能,而代码也更精简。类似React的setState就支持函数式的!

函数式的setState是React的未来,那么setData能否成为微信小程序的未来勒?

参考文章:    https://juejin.im/post/5bd0191a6fb9a05cf9087284?utm_medium=fe&utm_source=weixinqun



最后一次编辑于  2018-11-05
回答关注问题邀请回答
收藏

2 个回答

  • 小程序技术专员-SgLy
    小程序技术专员-SgLy
    2018-11-06

    setData 将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page.html#pageprototypesetdataobject-data-function-callback

    2018-11-06
    有用
    回复 2
    • )ㄣう枫ず舞
      )ㄣう枫ず舞
      2018-11-08

      小型项目。官方目前的setData,已经很好用了。

      但是在些复杂的大型项目中,有些项目产品需求中,会存在一个值频繁的在某些场景下修改。

      目前我们都是通过if else 通过条件判断,再执行遍setData。导致到处都是setData,

      所以我大胆设想下,如果支持函数式的setData,也就是类似于React的那种函数式this.setState((state,props)=>({"k":v}))。会使很多代码可以抽离成模块,得到复用,从而提升开发者的开发效率?

      不知有没有道友认同我的建议。


      2018-11-08
      回复
    • 小程序技术专员-SgLy
      小程序技术专员-SgLy
      2018-11-08回复)ㄣう枫ず舞

      你的文章中提到的根本问题(数据异步改变)在小程序的场景下不存在,而如果只是需要函数式 setData 的话,开发者完全可以自己对官方 setData 进行封装实现,不需要框架这边进行改动的。

      2018-11-08
      回复
  • 卢霄霄
    卢霄霄
    2018-11-06

    有什么场景需要用到函数式吗,能举个例子吗。。

    2018-11-06
    有用
    回复 1
    • )ㄣう枫ず舞
      )ㄣう枫ず舞
      2018-11-08

      在复杂的大型项目的项目产品需求中,会存在一个值频繁的在某些场景下修改。

      目前我们都是通过if else 通过条件判断,再执行遍setData。导致到处都是setData,

      所以我大胆设想下,如果支持函数式的setData,也就是类似于React的那种函数式this.setState((state,props)=>({"k":v}))。会使很多代码可以抽离成模块,得到复用,从而提升开发者的开发效率?

      不知有没有道友认同我的建议。


      2018-11-08
      回复
登录 后发表内容