8.7 版本发布—WinterCG 兼容性第一部分
了解更多

使用平台条件语句与拆分成平台文件?

这个问题在最佳实践方面被问了很多次。

使用“平台条件语句”

ts
if (isIOS) {
  // handle ios
} else if (isAndroid) {
  // handle android
}

使用平台文件

  • file.ios.ts
  • file.android.ts

树状摇动和 Webpack 构建的出现消除了这方面的大部分担忧,但是这里有一些需要考虑的事情。

带有树状摇动的条件语句

在谈到树状摇动时,从 NativeScript 7 开始,您就可以使用 global.isAndroidglobal.isIOS,并且只要这些被用作代码中的条件拆分,实际上只有正在构建的平台适用的代码才会最终出现在编译后的代码中,从而消除了这里的大部分担忧。

未来的维护

另一个方面归结为随着时间的推移进行维护和清晰度。

当处理每个平台只有几行代码时,使用条件语句当然是非常易于维护且无忧的。

一般的建议是,如果某个平台的用例有 10 行或更多代码,那么拆分成单独的 .ios.android 文件当然可以帮助使该代码更容易维护,并更容易随着时间的推移进行扩展。

底线是不要过于担心这些细节。条件语句可以通过 Webpack 进行调整,以排除您希望在生产环境中调整分发包以仅包含适用于运行时平台的代码的某些条件。除此之外,您自己的偏好就可以了。

下一个
简介