IndexBar 序列

可通过索引检索的序列

示例

基础用法

<script lang="ts">
  import _province from '@province-city-china/province'
  import _city from '@province-city-china/city'

  const provinceAbbrByCode = {
    '11': '京', // 北京市
    '12': '津', // 天津市
    '13': '冀', // 河北省
    // ...
  } as Record<string, string>
</script>

<Page class="overflow-hidden bg-gray-100">
  <IndexBar>
    {#each _province as province}
      <!-- 提供省的缩写作为 data-index 的值 -->
      <List
        header={province.name}
        data-index={provinceAbbrByCode[province.province]}
      >
        {@const cities = _city.filter(x => x.province === province.province)}
        {#if cities.length}
          {#each _city.filter(x => x.province === province.province) as city}
            <ListItem icon="none" clickable>{city.name}</ListItem>
          {/each}
        {:else}
          <ListItem icon="none" clickable>{province.name}</ListItem>
        {/if}
      </List>
    {/each}
  </IndexBar>
</Page>

IndexBar 会扫描第一级子元素,提取其 data-index 属性并作为索引。未提供 data-index 的元素会被忽略。

注意:请勿提供重复的 data-index 值。这会导致索引指向错误。

IndexBar

属性

属性 说明 类型 默认值
index 当前锚点位置 string $bindable()

子元素属性

属性 说明 类型 默认值
data-index 定义子元素的索引值 string 必填