【问题标题】:Is React Native solving the right pain point?React Native 是否解决了正确的痛点?
【发布时间】:2015-12-09 05:09:02
【问题描述】:

我读了一篇关于 React Native 的文章(http://blog.scottlogic.com/2015/03/26/react-native-retrospective.html),目前我也在做实验。

在几天的实验中,我的感觉从兴奋转为担忧。

由于 React Native 专注于 MVC 中的 V,但恕我直言,我更热衷于跨平台共享 M(和服务)中的代码。我很高兴拥有原生视图(iOS 的 xib 和 Android 的布局),因为我认为它们是针对特定平台的,这是使用原生而不是混合和 HTML5 的主要原因。模型和服务的情况有所不同,因为它们很常见并且更适合跨平台共享。

在 Mobile(React Native) 和 Web(React) 之间共享代码可能有意义,但现在说还为时过早。

你觉得怎么样?我期待听到您的想法。

【问题讨论】:

    标签: android ios mobile react-native


    【解决方案1】:

    使用 React Native,您可以根据需要在 Obj-C(Cocoa、XIB 或 Java)中编写所有视图。其实没那么复杂。

    但是,RN 的一些最大优势在于它使用 JavaScript。这允许您用 JavaScript 编写所有业务逻辑(如您所说的“M”),现在可以跨移动平台(现在是 iOS 和 Android)共享。当然,如果您的业务逻辑与 UI 分离(应该如此),那么您甚至可以在 Web 上共享它。

    在此之前,如果您想要一个在移动平台之间共享的通用业务逻辑库,您必须使用 C++ 编写它,或者可能使用 Xamarin (C#) 之类的东西。

    我不确定这是在回答你的问题,还是同意你所说的一些事情哈哈。 AFAIK,React Native 绝对解决了正确的痛点,因为它非常灵活,它让你决定 什么 痛点是什么。 :)

    【讨论】:

    • 戴夫,是的,你是对的。我目前正在将 Xamarin 用于我们的移动应用程序,并共享大量代码(在 ViewModel、Model、Services 中)。我正在尝试使用 React Native 来做同样的事情,但是我发现 React Native 和 Native 之间的通信仍然没有那么灵活,并且回调仅在 Native Module 中支持,它是从 React Native 调用到 Native,而不是反过来(事件是选项,但仍然不成熟)。我会继续探索并等待一段时间,让 React Native 获得更多的信心。谢谢
    • 您提到:“React Native 和 Native 之间的通信仍然没有那么灵活”...有趣,您能再扩展一下吗?
    • 嗨 Dave,我的意思是说我想从 Native 代码 (Objective-C) 中调用 React Native 函数,特别是在我使用 React Native 作为 ViewModel 和 Native 代码作为视图控制器。希望这是有道理的。
    • 嗯,好的,我明白你在说什么。根据我的经验,在使用混合应用程序时,首先引入 React Native 的最佳方式只是将数据向下传递到的愚蠢视图。 (即github.com/dsibiski/react-native-hybrid-app-examples/blob/…)。
    • 稍后,当您希望将实际功能移到 RN 中时,您应该将其全部移到那里并替换整个本机屏幕或 RN 中的分支。这样,您无需从本地世界“调用”您的 RN 代码中的任何函数。此外,最好通过将 props 传递给您的 RN 视图并让这些组件完成它们的工作,而不是向下和调用函数(如果可能的话)来保持一切尽可能“声明性”。
    猜你喜欢
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    相关资源
    最近更新 更多