V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
banxi1988
V2EX  ›  前端开发

小程序开发终于迎来 React 生态的玩家: 京东 Taro

  •  
  •   banxi1988 ·
    banxi1988 · 2018-06-08 08:17:33 +08:00 · 10387 次点击
    这是一个创建于 2120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://taro.aotu.io/ http://github.com/nervjs/taro

    一个月之前我在找小程序开发框架的时候,发现只有 Vue 生态的 mpvue 和 wepy。

    当时一直在想为什么没有 React 风格的框架。今天终于看到了。 但是我已经选择了 mpvue 了。

    初看了一下,虽然 taro 属于新发,但是配套其实比前 mpvue 完善一些。

    暂时也不打算换了。毕竟跳车有风险。

    TO mpvue 用户:

    1. 小程序 API 自动补全和类型提示,可以通过引入 wechat-mp-types 这个 TS 声明库来实现。
    2. 自动补全,代码片段的话也有 mpvue-snippets 库。
    3. 组件封装,我正在带一个叫 mpvue-starter 的库。里面正在做 weui 组件 + vue + 小程序组件的封装。
    4. 加入 mpex 包, 为你的小程序开发助力
    11 条回复    2018-06-08 23:24:42 +08:00
    mryys
        1
    mryys  
       2018-06-08 09:28:50 +08:00
    TouchUI 了解下?
    my101du
        2
    my101du  
       2018-06-08 09:37:23 +08:00
    支持 redux 是指必须引入 redux 和 @tarojx/redux 两个库吗?
    不知道可不可以直接用 mobx。。。
    Heavytiger
        3
    Heavytiger  
       2018-06-08 09:49:15 +08:00
    这个不错。希望早日支持 react native
    my101du
        4
    my101du  
       2018-06-08 10:38:27 +08:00
    看文档读到这块,感觉不支持这个挺麻烦啊。


    和 React/Nerv 的不同:React 可以使用 ... 拓展操作符来传递属性,但在 Taro 中你不能这么做。例如:

    const props = {firstName: ‘ Plus ’, lastName: ’ Second ’}
    return <Greeting {...props} />

    这样的操作会报错。你只能手动地把所有需要引用的 props 写上去: <Greeting firstName="Plus" lastName="Second" />
    sunnygaofan
        5
    sunnygaofan  
       2018-06-08 12:29:31 +08:00 via iPhone
    这个其实很需要,👍
    exoticknight
        6
    exoticknight  
       2018-06-08 12:56:43 +08:00 via iPhone
    react 的其实一直有还有不少,只是你们都觉得的有,是有所谓大公司背书的有。这一点上我是很佩服 vue,不像 angular 和 react 有大公司撑腰也抢到一定份额。
    zzl
        7
    zzl  
       2018-06-08 12:59:51 +08:00
    这个挺好,国内一些大厂就是爱搞什么小程序,马化腾一套类 vue,快应用一套类 vue,你们就不能直接用 vue 搞吗,这些大厂难道是没有技术吗,非得折腾我们前端,MD
    coldsnap
        8
    coldsnap  
       2018-06-08 14:10:16 +08:00
    就相对于自动补全而言,Taro 用的是 JSX 所以可以做类型推导,也不用装什么插件,vscode 默认就支持。

    例如设置了 <Greeting /> 的 `name` 是一个字符串,那么在使用 <Greeting name={someVar} /> 时候编辑器会提醒你 `name` 是一个 `string` 类型,如果你用的是 TypeScript 输入错误的类型还会给你报错。这点是 Vue/wepy 这样基于字符串模板做不到的。

    TypeScript 在一年前就有人提案要 template typing,但现在这个 feature 还没影子: https://github.com/Microsoft/TypeScript/issues/5151
    如果哪天支持的话 Vue/Angular 也能得到模板的类型支持。

    利益相关:
    Taro 开发者
    janxin
        9
    janxin  
       2018-06-08 16:41:11 +08:00
    我看 lz 的意思是可以用 mpvue+TS 来开发?如何实现的?有没有新手入门教程?
    banxi1988
        10
    banxi1988  
    OP
       2018-06-08 21:59:31 +08:00
    @coldsnap 感谢回复,之前没有留意到 JSX 这方面的优势,可能跟已经习惯各种字符串模板了,后面多学习学习。vue 本身借助 babel 也是支持 jsx 的。mpvue 中没有试过。

    @janxin mpvue 入门的话,mpvue 的官方文档有。 稍微了解了 mpvue 之后,可以看一下。
    我准备的 mpvue-starter (本来仓库名是想写成 mpvue-ts-starter 的,但是想想,我认为最佳实践就是加 ts 所以就省略了)
    janxin
        11
    janxin  
       2018-06-08 23:24:42 +08:00
    @banxi1988 入门教程没有问题,主要是好奇 TS 的开发,我也认为这样是一个正确姿势。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2543 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 15:57 · PVG 23:57 · LAX 08:57 · JFK 11:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.