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

zblog10个月前zblog问题解答21

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


相关文章

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

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

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

ICO图标logo生成代码

<!DOCTYPE html> <html> <head>     <meta ...

(phpsession)php session 增改删的例子 名字叫 baijiahao

当使用 PHP 会话(session)来存储、修改和删除名为 baijiahao 的数据时,你可以按照以下步骤进行操作:启动会话首先,你需要在每个需要使用会话的 PHP 脚本中启动会话。这通常是通过调...

echo plugin_dir_url(__FILE__); zblog 通过文件获取应用URL地址 返回插件目录的URL地址

<?php /** @var ZBLOGPHP $zbp */ require_once '../../../../zb...

dechex 函数 ,用于将一个十进制数转换为其对应的十六进制字符串表示。

在PHP中,dechex() 函数是一个内置函数,用于将一个十进制数转换为其对应的十六进制字符串表示。 这个函数在处理数字数据时非常有用,特别是当你需要将数字以十六进制格式输出或存储时。...

mysql数据库坏了 linux启动不了  ib_logfile0 和 ib_logfile1

mysql数据库坏了 linux启动不了 ib_logfile0 和 ib_logfile1

mysql数据库坏了 linux启动不了把 ib_logfile0 和 ib_logfile1 删除或重命名 重新启动 (数据损坏了 ,可以事后重新导入)...