首页 > 其他分享 >vue sort 排序

vue sort 排序

时间:2023-08-29 16:56:18浏览次数:35  
标签:sort vue return name price 排序 id

Vue.js提供了多种实现排序的方式。下面列举了几种常见的排序方法及示例代码。

 

1、使用JavaScript原生的Array.prototype.sort()方法进行排序。这种方法适用于简单的数组排序需求。

// 在Vue组件中的方法中使用sort方法进行排序
data() {
  return {
    myArray: [3, 1, 2, 4]
  };
},
methods: {
  sortArray() {
    this.myArray.sort((a, b) => a - b);
  }
}

2、 使用v-for和计算属性结合,对数据进行动态排序。这种方法适用于对Vue组件中的数组数据进行实时排序。 

<!-- 在Vue模板中使用计算属性对数组进行排序 -->
<template>
  <div>
    <button @click="sortByPrice">按价格排序</button>
    <ul>
      <li v-for="item in sortedItems" :key="item.id">
        {{ item.name }}: {{ item.price }}
      </li>
    </ul>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '商品1', price: 20 },
        { id: 2, name: '商品2', price: 10 },
        { id: 3, name: '商品3', price: 30 }
      ]
    };
  },
  computed: {
    sortedItems() {
      return this.items.sort((a, b) => a.price - b.price);
    }
  },
  methods: {
    sortByPrice() {
      this.items.sort((a, b) => a.price - b.price);
    }
  }
};
</script>

3、使用第三方插件,如Lodash的sortBy函数对数组进行排序。这种方法适用于复杂排序需求或对对象数组进行排序。

<!-- 先安装lodash -->
npm install lodash
 
<template>
  <div>
    <ul>
      <li v-for="item in sortedItems" :key="item.id">
        {{ item.name }}: {{ item.price }}
      </li>
    </ul>
  </div>
</template>
 
<script>
import _ from 'lodash';
 
export default {
  data() {
    return {
      items: [
        { id: 1, name: '商品1', price: 20 },
        { id: 2, name: '商品2', price: 10 },
        { id: 3, name: '商品3', price: 30 }
      ]
    };
  },
  computed: {
    sortedItems() {
      return _.sortBy(this.items, 'price');
    }
  }
};
</script>

以上是几种常见的Vue中排序的方法和示例代码。根据具体需求选择合适的方法进行排序。

 

标签:sort,vue,return,name,price,排序,id
From: https://www.cnblogs.com/Jishuyang/p/17665310.html

相关文章

  • vue横向滚动,并且实现点击左右按钮来进行滚动
    直接上代码,可以点击左和右两个汉字进行横向滚动<template><divclass="Home"><divstyle="display:flex;height:100%;align-items:center;"><div@click="scrollLeft('scrollContainer1')"style=&q......
  • Vue【原创】基于elementui的分组多选下拉框【group-list】
    效果图: 如图分为多选模式和单选模式。 group-select:1<template>2<div>3<el-select4v-model="innerValue"5:placeholder="placeholder"6@change="changeSelect"......
  • hive-四种排序
    数据准备200832.0200821.0200831.5200817.0201334.0201532.0201533.0201515.9201531.0201519.9201527.0201623.0201639.9201632.0建表createtableods_temperature(yearint,......
  • MySQL默认情况下的排序方式
    1、问题:今天在做开发时碰到了一个问题,使用了最简单的sql语句查询,条件中也只有一个条件,语句类似如下:SELECT*FROM`people`WHEREschool_id='1234';查询出的结果为3条,本以为应该按照数据库的插入顺序查出来,即按照主键ID的升序排列,但是得出的结果却不是,确实按照了其中一个字......
  • 插入排序:直接插入排序、折半插入排序、希尔排序的实现
    直接插入排序定义:直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。算法的代码:#include<stdio.h>#include<stdlib.h>voidprint_series(constintseries[],intlen){for(inti=0;......
  • Vue项目element-ui 添加动态校验
    需求:一个表单中某个字段,根据另一个字段变化,校验是否必填<el-formref="detail":model="detail":rules="ruleData"size="small"label-width="100px"><el-card><el-row><el-col:spa......
  • Oracle查看占用表空间最大的表(排序)
    selectt.owner,t.segment_name,t.tablespace_name,bytes/1024/1024/1024assizes,q.num_rows,t.segment_type fromdba_segmentst leftjoindba_tablesq   ont.segment_name=q.table_name  andt.owner=q.owner wheret.segment_type='TABLE'  andt.tab......
  • 快排及链表排序
    文章目录一、普通的快排二、链表的创建三、链表的冒泡排序四、链表快排五、链表归并排序一、普通的快排voidQuickSort(vector<int>&vec,intlow,inthigh){ intpivot=vec[low];//选择第一个元素作为枢纽元 //mid总是指向最后一个比枢纽元小的位置,当需要交换元素时,先......
  • vue3响应式数据重复
    记一次bug。。由于【甲方负责人】的表单是响应式的,然后直接添加到另一个响应式的数组里了,就会造成【更改表单内容,也会使数组里的值发生变化】解决方法1//添加到列表,做临时显示2constaddresponsible=()=>{3constnewResform={...resform};//添加数组之前创......
  • 【Vue】vue3 v-draggable 拖拽指令封装
    说明需求:实现一个拖拽指令,可在父元素区域任意拖拽元素,同时如果传入的值为father,则拖拽的时候以父元素为拖拽对象思路:1、设置需要拖拽的元素为absolute,其父元素为relative。2、鼠标按下(onmousedown)时记录目标元素当前的left和top值。3、鼠标移动(onmousemove)时计算每......