diff --git a/docs/selector/optimize.md b/docs/selector/optimize.md index 71a4dd8..2d17c6a 100644 --- a/docs/selector/optimize.md +++ b/docs/selector/optimize.md @@ -25,7 +25,8 @@ 根据上面说明的优化, 虽然也只有一次判断, 但是由于 `< [!TIP] 提示 +> 实际上从根节点开始匹配的选择器如 `A > B` 都可等价为 `A > @B < [!TIP] 提示 +> [!NOTE] 注意 > 此优化需要设置 [fastQuery](/api/interfaces/RawCommonProps#fastquery) 来启用 +### 查询场景 {#query-scene} + 一般情况下, 选择器 `[vid="name"]` 需要从 根节点/事件节点 使用深度先序顺序遍历子孙节点并判断是否满足条件 但是 Android 提供了如下两个快速获取节点的 Api @@ -53,6 +56,8 @@ 对此我们需要规定符合特定条件的选择器来调用这些 Api 从而跳过手动遍历子孙节点 +### 规定格式 {#rule-format} + 所有 `末尾属性选择器`的`第一个属性选择表达式`符合下面的结构之一 - `[id='abc']` @@ -82,9 +87,6 @@ 示例 `A > B + C[id='x'][childCount=2] < [!TIP] 提示 -> 实际上从根节点开始匹配的选择器如 `A > B` 都可等价为 `A > @B < B + C[id='x'][childCount=2] < C[id='x'] < [!NOTE] 注意 +> 如果选择器不存在满足快速查找的格式, fastQuery 是否开启都不影响查询复杂度 + +### 优化示例 {optimize-example} 以 [`[vid="image"] <