在React / React Native(Redux)中使用Spread运算符

时间:2019-12-13 06:56:17

标签: javascript reactjs react-native redux

我正在redux中使用散布运算符在移动应用程序开发中进行本机操作。 传播运算符是否有可能无法在React-Native支持的某些较旧的设备上运行?不确定react-native在底层的工作方式(react-native创建的本机应用是否依赖于支持es6的底层浏览器?)

反应如何?假设react支持该浏览器版本,但浏览器本身不支持es6语法。 redux中的传播算子会正常工作吗?

我在考虑是否应该使用传播运算符,因为我不确定传播运算符是由反应/本机还是由浏览器处理的。

我想使用传播运算符,但我不想要:
1)对于本机移动应用程序,最终将无法通过android 4.4的质量检查测试。
2)对于react js,最终将无法在react js支持但不具有es6兼容性的浏览器上运行。

所以我的问题是,react / react-native是否在内部处理散布运算符或任何es6函数,还是取决于外部浏览器/插件?

注意: 我说的是React-native中的.js文件而不是.jsx文件。

2 个答案:

答案 0 :(得分:2)

对于 React ,您需要担心使用ES6,因为旧版本的浏览器(尤其是Internet Explorer)不支持使用诸如babel.js之类的编译器。检查支持图表以了解babel 7。

对于 React native ,事情的工作方式有所不同。有一个RCT桥,可帮助将javascript / react代码转换为适用于android和ios的本机代码。因此,基本上所有内容都将转换为本地代码,然后进行渲染。对于本机反应,只要您的应用在较旧的手机上运行,​​您就不必担心使用ES6语法,即,如果android的较早版本支持APK,那么javascript语法就可以使用。

希望有帮助。毫无疑问

enter image description here

答案 1 :(得分:1)

反应

您是对的,并非所有浏览器都支持ES6。因此,您的代码应由Babel转译。 Babel会将所有ES6语法转换为与浏览器兼容的JavaScript。参见https://medium.com/@SunnyB/how-to-convert-es6-into-es5-using-babel-1b533d31a169

本机

根据平台,您编写的代码实际上已编译为其他语言。最终,您的移动设备实际上不是运行JS,而是运行Android(例如,Java)。我不是编译过程的专家,但是您可以在这里https://hackernoon.com/understanding-react-native-bridge-concept-e9526066ddb8

简而言之,react-native,您不必为此担心