通过在页面或自定义组件的 JSON 配置中添加以下配置开始适配

zblog1年前zblog问题解答75

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 的接口,仅有少数地方需要变更:

  1. [必须] 模板中数据绑定外的转义改为标准 XML 转义,数据绑定内的转义现在无需转义

    • 兼容性:[需要手动兼容] exparser 上不能使用新的转义写法

    • 旧例:

      <view prop-a="\"test\"" prop-b="{{ test === \"test\" }}" />
    • 新例:

      <view prop-a="&quot;test&quot;" prop-b="{{ test === "test" }}" />
  2. [必须] 模板中不再支持 wx-ifwx-for 两种写法,仅支持 wx:ifwx:for

    • 兼容性:[推荐直接变更] exparser 同样可以使用 wx:ifwx:for

    • 旧例:

      <view wx-if="{{ arr }}" />
    • 新例:

      <view wx:if="{{ arr }}" />
  3. [必须] 运行在 exparser 兼容模式上时,不支持 WXSS input 标签选择器

    • 兼容性:[推荐直接变更]

    • 旧例:

      input {
         height: 30px;}
    • 新例:

      .my-input {
         height: 30px;}
  4. [必须] 自定义组件 JS 配置 options 中的 styleIsolation 改为在 JSON 中配置

    • 兼容性:[推荐直接变更] exparser 同样会读取 JSON 中的 styleIsolation

    • 旧例:

      Component({
        options: {
          styleIsolation: 'isolated'
        }
      })
    • 新例:

      {
        "component": true,
        "styleIsolation": "isolated"
      }
  5. [必须] 自定义组件 JS 配置 options 中的 addGlobalClass 改为在 JSON 中配置

    • 兼容性:[推荐废弃] exparser 不会读取 JSON 中的 addGlobalClass,但 addGlobalClass 可以等价转换为对应的 styleIsolation 从而兼容:

    1. 由于当 styleIsolation 并非默认值时,addGlobalClass 无效,因此如果组件已经有 styleIsolation 配置项,直接去掉 addGlobalClass 即可

    2. 如果组件使用 Page({}) 进行注册,由于 Page({}) 拥有 styleIsolation: shared 默认值,因此 addGlobalClass 不会生效,去掉即可

    3. 区分自定义组件是否做为页面使用,按照下表将 addGlobalClass 转换为 styleIsolation


      作为页面根节点不作为页面根节点
      addGlobalClass: true无需添加(没有意义)styleIsolation: apply-shared
      addGlobalClass: falsestyleIsolation: sharedstyleIsolation: isolated


相关文章

获取百度相关词 百度下拉词 接口 360搜索相关词

https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web&w...

real_escape_string mysql处理特殊字符函数替换单引号等的函数 real_escape_string

$conn->real_escape_string($city);$conn->real_escape_string($city);real_escape_string...

phpstorm中的正则表达式替换 编辑器IDE

phpstorm中的正则表达式替换 编辑器IDE

phpstorm中的正则表达式替换 编辑器IDE...

aardio换行 aardio怎么换行

aardio换行 aardio怎么换行

 也可以用单引号 里面 \r\n...

Call to undefined function xnxf()zblog提示“可能的错误原因提示或500网络错误”时排查错误的方法

Call to undefined function xnxf()zblog提示“可能的错误原因提示或500网络错误”时排查错误的方法

很多时候都有可能遇到《错误提示》这类的提示,产生这个错误的原因一般来说都是服务端报错,如下图准备工作:1、进入后台,在网站设置的全局设置里,打开调试模式。2、如果不能进后台,那就用ftp连进网站,编辑...

宝塔可以防采集吗?能,但是你大概率用不上!因为:正常用户也会弹出来验证!!!

宝塔可以防采集吗?能,但是你大概率用不上!因为:正常用户也会弹出来验证!!!

参见https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=106744&highlight=%E9%98%B2%E9%87%87%E9%...