javascript - 是否可以在 React Native 中注入(inject)一些 javascript 而无需更新整个包?

标签 javascript reactjs react-native

我使用了像 Codepush 这样的库来无线更新应用程序。但是,使用 Codepush 会构建新的 bundle ,然后将现有的 bundle 替换为新的 bundle 。 我想更改组件的一些 javascript 代码(可能使用 API 或其他任何可以从服务器注入(inject)一些 javascript 文件的东西),而不更新现有的包。

例如=>如果我有一个简单的用户界面,其中上半部分是空的。 注入(inject)的Javascript文件(UI上半部分的子组件)可能包含一些组件及其处理程序(可以是按钮、图像或文本输入字段等)。

这个注入(inject)的文件作为组件从服务器加载,因此我可以从服务器文件本身动态更改组件。 有什么特殊的方法可以做到这一点吗?

最佳答案

您不太可能将文件推送到已经转译和最小化的包中。

更好的选择是从前端向后端进行 API 调用以检索动态数据。然后可以操纵这些数据并将其显示在您的前端上。

然后,要更改前端显示的内容,您所需要做的就是更改 API 从后端返回的内容。

编辑: 如果最初加载的组件是一个简单的按钮并发布 api 响应,它会变成一个模态,其中整个模态 UI 以及事件处理程序代码作为组件从 API 响应中传入。这样的事情可能吗?

没有。

您不能将未编译的组件发送到前端。请记住,提供给客户端的包是经过编译的缩小版 JavaScript。您不能有条件地为单个用户重新编译应用程序,或者如果可以的话 - 似乎是一个非常糟糕的主意。

您可以做的是允许您的前端从 API 调用接收和呈现 HTML 内容。不必重新编译,但是您将无法使用 React 类等。它必须是纯 HTML/CSS/Javascript。

关于javascript - 是否可以在 React Native 中注入(inject)一些 javascript 而无需更新整个包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61406722/

相关文章:

javascript - Mootools 禁用链接标签

javascript - 在悬停时更改 SVG <g/> 坐标

css - ReactJS 导航项,不包装在工具栏组件中

reactjs - React Redux 处理表单无法读取未定义的属性

javascript - 如何向 onClick 事件处理程序传递一个函数,该函数接受一个参数并仍然将该函数绑定(bind)到组件的 "this"上下文?

reactjs - 为什么我在构造函数中的绑定(bind)不起作用?

javascript - Promises 和 Deferred : . did() 和 .then() 被调用,尽管 .resolve() 在 Deferred 对象上被调用

javascript - 简单的 javascript 循环不起作用

javascript - 有条件的 onChange 函数不起作用

ios - 构建后 react native IOS