You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3项目中v-for循环列表排序实现方法咨询

给Nuxt3列表添加排序功能

基础实现:按字符串(user_signature)排序

核心是用Vue的computed计算属性生成排序后的数组,既保留响应式特性,又不会修改原始接口数据。

修改你的代码如下:

模板部分(template)

把v-for="nda in ndas"替换为v-for="nda in sortedNdas",同时修复class里的语法错误(去掉无效的font-color:前缀):

<template>
  <div class="max-w-7xl mx-auto my-10 sm:px-6 lg:px-8">
    <div v-if="pending">Loading ...</div>
    <div v-else>
      <!-- 可选:添加排序方向切换按钮 -->
      <button @click="sortAscending = !sortAscending" class="mb-4 px-4 py-2 bg-gray-100 rounded">
        {{ sortAscending ? '切换为降序' : '切换为升序' }}
      </button>
      
      <ul class="list-none" style="columns: 4">
        <li
          v-for="nda in sortedNdas"
          v-bind:key="nda.id"
          class="text-slate-600 hover:text-red-600 hover:underline"
        >
          <Nuxt-link :to="'/'+ nda.id">
            {{ nda.user_signature }}
          </Nuxt-link>
        </li>
      </ul>
    </div>
  </div>
</template>

脚本部分(script setup)

添加计算属性和可选的排序方向控制变量:

<script setup>
const { pending, data: ndas } = useLazyFetch(
  "https://***/nda-data.json"
);
// 可选:控制排序方向(默认升序)
const sortAscending = ref(true)

// 生成排序后的数组
const sortedNdas = computed(() => {
  if (!ndas.value) return []
  // 拷贝原始数组,避免修改接口返回的原数据
  const ndaList = [...ndas.value]
  // 按user_signature字母顺序排序
  ndaList.sort((a, b) => {
    return a.user_signature.localeCompare(b.user_signature)
  })
  // 根据排序方向返回结果
  return sortAscending.value ? ndaList : ndaList.reverse()
})
</script>

其他排序场景

按数字(id)排序

如果需要按id的大小排序,把sort函数替换为:

ndaList.sort((a, b) => {
  // 升序用a.id - b.id,降序用b.id - a.id
  return sortAscending.value ? a.id - b.id : b.id - a.id
})

大小写不敏感排序

如果你的签名存在大小写混合的情况,可以统一转成小写后再排序:

ndaList.sort((a, b) => {
  const sigA = a.user_signature.toLowerCase()
  const sigB = b.user_signature.toLowerCase()
  return sigA.localeCompare(sigB)
})

关键说明

  • 用[...ndas.value]拷贝数组是为了避免直接修改useLazyFetch返回的原始响应数据,防止出现意外副作用
  • localeCompare方法支持多语言字符串排序,比直接用>或<更可靠

内容的提问来源于stack exchange,提问作者Charles Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:57:52