我正在开发一个中型 Appcelerator Titanium 应用程序。我想扩展 Ti.UI 对象,我想知道这是否安全。
我想要做什么 将一些与 UI 相关的辅助函数和对象存储为 Ti.UI 树的一部分。
一个简单的例子是:
Ti.UI.COLORS = {
RED: '#213234',
BLUE: '#ABDCEF'
}
我最担心的是,这可能不安全,或者只是不能面向未来。
为什么我要这样做 我在 Titanium 的 JSS 方面有过不好的经历,我目前正在 CSS.js 文件中存储和检索我的文件。该文件捆绑了一些使样式更容易的函数和对象(如上面的颜色示例),并将它们与一长串样式类组合在一起,存储为对象。这些类使用辅助函数。
像这样:
//Provide helper functions
COLORS = { RED: 'etc' };
IOS_ANDROID = function(iosValue,androidValue){
if (Device.isIOS) {
return iosValue
} else {
return androidValue
};
//Provide the styles as exports object (using commonJS)
exports.styles = {
winHome: {
backgroundColor: COLORS.RED
},
winProducts: {
navBarHidden: IOS_ANDROID(true,false),
}
}
现在我的应用程序已经长大了,这个样式对象的大小变得很烦人。我正在尝试将样式拆分为几个 .js 文件,并使用包含和要求组合它们(以及必要的功能)。所以我现在有一个“css-Home.js”、“css-Products.js”等。
这有点工作,但我目前需要在每个 css-.js 文件中重新包含/需要帮助函数。这感觉很尴尬。我试图严格遵守只使用 require() 而不使用 include() 的 CommonJS 实践。但是,如果我使用 require() 添加辅助函数,就像这样......
var cssHelpers = require('css-helpers.js')
...然后我需要在所有助手前面加上该变量,就像这样...
exports.styles = {
winHome: {
backgroundColor: cssHelpers.COLORS.RED,
},
}
这就是为什么我想在应用程序初始化期间将这些基本的东西放入 Ti.UI 中。然后我将在任何地方都可以使用样式辅助函数。