WEEX学习:
WEEX提供了weex.config.env和WXEnvironment两种方法获取当前运行时环境
通过WXEnvironment.platform来确定代码运行在哪个平台
初始化项目:
npm install weex-toolkit -g
创建空模板项目:
weex create awesome-app
==》开发:
进入awesome-app、安装依赖、执行npm start:
cd awesome-app
npm install
npm start
编译和运行:
安装特定平台项目 weex platform add ios/android
配置客户端开发环境:
IOS=》安装配置Xcode
Android=》安装配置Android Studio
配置好开发环境后,运行命令在模拟器或真是设备启动:
weex run ios
weex run android
weex run web
调试:
执行
weex debug
平台差异:
DOM:
IOS和Android上没有DOM,操作DOM元素会有兼容性问题,更好的是操作数据和组件而不是生成元素是较好的做法。
样式:
出于性能,Weex目前只支持单个类选择器,且只支持CSS规则的子集。
事件:
Weex不支持事件冒泡和捕获,故不支持事件修饰符,如.prevent,.capture,.stop,.self
Weex在中按键修饰符和系统修饰键也不支持
拓展HTML5的功能:
拓展内置组件:
通过import引入文件
通过weex.init(Vue)来初始化Vue
再通过以下两种方式之一全局注册组件
weex.registerComponent("引用名",组件来源)
注册模块:
通过关键字registerModule来注册,三个参数分别为 name(必选)模块名称、define(必选)模块定义、meta(可选)将某些属性或者方法传入模块时使用。
eg:
weex.registerModule("moduleName",{
getName(){
console.log("Who I am");
},
setName(){
console.log("你猜?");
}
})
使用模块
const myModule = weex.requireModule("moduleName");
myModule.getName();
myModule.setName();
Weex JS引擎的特性支持情况:
保守估计都支持ES5的所有特性,包括严格模式、Object.freeze等,关于Object.freeze的详细用法和解释,可以参考这里。
Object.freeze冻结操作包括了以下几个:
Object
Object.prototype
Array
Array.prototype
String.prototype
Number.prototype
Boolean.prototype
Error.prototype
Date.prototype
RegExp.prototype