通过在页面或自定义组件的 JSON 配置中添加以下配置开始适配
JSON 配置
通过在页面或自定义组件的 JSON 配置中添加以下配置开始适配:
{ "componentFramework": "glass-easel" }添加后,WXML 模板将被编译为适配 glass-easel 的新格式 ProcGen,并同时保持对旧版组件框架 exparser 兼容。
为一个页面或自定义组件添加这个配置后,所有它依赖的组件也将自动被标记为 glass-easel 适配(包括 usingComponents 依赖和 componentGenerics#default 依赖)
在 app.json 中添加这个配置可以全局开启 glass-easel 支持。但需要注意的是,配置后编译生成的模板虽然也能在 exparser 上运行,但兼容版本在 exparser 上有可能遇到边界情况下的兼容性问题,因此除非不需要兼容旧版本基础库或者小程序整体都以 Skyline 运行,否则应该更谨慎地使用全局配置。
插件暂未支持页面或自定义组件级别的 componentFramework 配置项,可以在 plugin.json 中添加这个配置项来开始适配。
变更点适配
glass-easel 在设计上兼容绝大多数的旧版组件框架 exparser 的接口,仅有少数地方需要变更:
[必须] 模板中数据绑定外的转义改为标准 XML 转义,数据绑定内的转义现在无需转义
兼容性:[需要手动兼容] exparser 上不能使用新的转义写法
旧例:
<view prop-a="\"test\"" prop-b="{{ test === \"test\" }}" />新例:
<view prop-a=""test"" prop-b="{{ test === "test" }}" />[必须] 模板中不再支持
wx-if,wx-for两种写法,仅支持wx:if,wx:for兼容性:[推荐直接变更] exparser 同样可以使用
wx:if,wx:for旧例:
<view wx-if="{{ arr }}" />新例:
<view wx:if="{{ arr }}" />[必须] 运行在 exparser 兼容模式上时,不支持 WXSS
input标签选择器兼容性:[推荐直接变更]
旧例:
input { height: 30px;}新例:
.my-input { height: 30px;}[必须] 自定义组件 JS 配置
options中的styleIsolation改为在 JSON 中配置兼容性:[推荐直接变更] exparser 同样会读取 JSON 中的
styleIsolation旧例:
Component({ options: { styleIsolation: 'isolated' } })新例:
{ "component": true, "styleIsolation": "isolated" }[必须] 自定义组件 JS 配置
options中的addGlobalClass改为在 JSON 中配置兼容性:[推荐废弃] exparser 不会读取 JSON 中的
addGlobalClass,但addGlobalClass可以等价转换为对应的styleIsolation从而兼容:由于当
styleIsolation并非默认值时,addGlobalClass无效,因此如果组件已经有styleIsolation配置项,直接去掉addGlobalClass即可如果组件使用
Page({})进行注册,由于Page({})拥有styleIsolation: shared默认值,因此addGlobalClass不会生效,去掉即可区分自定义组件是否做为页面使用,按照下表将
addGlobalClass转换为styleIsolation:作为页面根节点 不作为页面根节点 addGlobalClass: true无需添加(没有意义) styleIsolation: apply-sharedaddGlobalClass: falsestyleIsolation: sharedstyleIsolation: isolated

