tnblog
首页
视频
资源
登录
愿你出走半生,归来仍是少年
排名
3
文章
317
粉丝
22
评论
14
bootstrap 栅格布局一小例子
剑轩 : 后端写样式有点痛苦哇
一点flex布局的运用
剑轩 : 后端写样式有点痛苦哇
vue.js常用指令
剑轩 : 可以可以,多总结一点
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

vue3 如何修改集合中的某一个属性。vue修改某个list对象数组中的字段值

289人阅读 2025/2/21 11:46 总访问:2060234 评论:0 收藏:0 手机
分类: 前端

比如我有一个对象集合,我只想修改这个集合里边某个对象的checkype属性,封装一个方法可以通过传递一个id来修改指定id对象的checkype=2。

示例代码如下:

  1. <template>
  2. <!-- 你的模板代码 -->
  3. <div>
  4. <button @click="updateCheckype(2)">修改ID为2的对象的checkype为2</button>
  5. </div>
  6. </template>
  7. <script setup lang="ts">
  8. import { ref } from 'vue';
  9. // 声明一个响应式的对象集合
  10. const items = ref([
  11. { id: 1, checkype: 0 },
  12. { id: 2, checkype: 0 },
  13. { id: 3, checkype: 0 },
  14. ]);
  15. // 声明一个方法来修改指定id对象的checkype属性
  16. const updateCheckype = (id: number) => {
  17. items.value = items.value.map(item => {
  18. if (item.id === id) {
  19. return { ...item, checkype: 2 };
  20. }
  21. return item;
  22. });
  23. };
  24. </script>

解释:

  1. 声明集合

    1. const items = ref([
    2. { id: 1, checkype: 0 },
    3. { id: 2, checkype: 0 },
    4. { id: 3, checkype: 0 },
    5. ]);

    这里使用了 ref 函数来创建一个响应式的对象集合。

  2. 声明修改方法

    1. const updateCheckype = (id: number) => {
    2. items.value = items.value.map(item => {
    3. if (item.id === id) {
    4. return { ...item, checkype: 2 };
    5. }
    6. return item;
    7. });
    8. };

    updateCheckype 方法接收一个 id 参数,并使用 map 方法遍历集合。如果当前对象的 id 与传入的 id 匹配,就返回一个新的对象(使用展开运算符复制原对象,并修改 checkype 属性)。否则,返回原对象。

  3. 模板中的按钮

    1. <button @click="updateCheckype(2)">修改ID为2的对象的checkype为2</button>

    在模板中,你可以绑定一个按钮的点击事件来调用 updateCheckype 方法,并传递你想修改的对象的 id

这样,当你点击按钮时,集合中 id 为 2 的对象的 checkype 属性就会被修改为 2。

修改对象里边还有对象的情况。比如修改对象里边有个对象属性projectMembersResultDto中的checkype属性

示例代码如下:

  1. const updateCheckype = (id: string,checkype:number) => {
  2. state.projectMembersList = state.projectMembersList.map(item => {
  3. if (item.id === id) {
  4. // 修改对象里边还有对象的情况。比如修改对象里边有个对象属性projectMembersResultDto中的checkype属性
  5. item.projectMembersResultDto.checkype = checkype
  6. return { ...item, projectMembersResultDto: item.projectMembersResultDto };
  7. }
  8. return item;
  9. });
  10. };

调用:

  1. const checkSuccess = (_rowData: any) => {
  2. // 刷新修改的checktype数据
  3. if (_rowData&&state.checkRowId) {
  4. updateCheckype(state.checkRowId,_rowData.checkype)
  5. }
  6. }

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue3,vue组件,props给一个对象参数。vue组件间传参数vue父组件给子组件传参数。组件参数类型。父组件调用子组件的方法。vue组件事件监听,给子组件传递方法,子组件调用父组件方法

[TOC]组件可以使用props给组件传值,可以同时传递多个,可以是任意类型,比如字符串或者对象。 下面是个简单的例子: &lt...

vue3最基础的数据加载,表格table

vue3表格加载一点静态数据 &lt;template&gt; &lt;el-table :data=&quot;tableData&quot; style=&quot;width: 100%&quot...

vue3 Element Plus 表单输入框放到一行

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。 通过设置 inline 属性为 true 可以让表单域变为行内的表单域...

vue3 Element ui Plus 表格 分页,vue3 el-pagination分页

其实就是el-pagination控件的使用而已 &lt;template&gt; &lt;div&gt; &lt;el-table :data=&quot;tableData&quot; ...

vue触发a标签的点击事件。vue3 dom操作 触发点击事件 。文件选择库只会触发一次change事件的问题

[TOC]vue触发a标签的点击事件直接操作dom节点的方式比较简单 &lt;button @click=&quot;handleBtnClick&quot;&gt;点击按钮&...

vue3 ref的使用多个ref的使用。通过ref触发点击事件

多个ref获取的方法可以使用一样的,通过变量名来区分就行了 const vabUploadRef = ref() const multipleTableRef = ref() ...

vue elementui,vue3 element plus 文件上传的时候设置其他参数。后台.net接收传递的额外参数。图片上传

比如上传文件的时候额外传递两个select选择的值 前台前面上传文件的时候要提供默认参数很简单,el-upload绑定一个data即可...

vue,vue3 打开新页面,页面跳转。vue跳转到一个新页面。vue路由传参,vue3路由传参,vue3 获取路由参数

[TOC]VUE页面跳转本地页面跳转 goApplicationCenter() { //进行页面跳转 let path = &quot;/application-center&quo...

vuevue3组件封装,vue组件模板。简单组件模板。基础组件模板。vue引入自定义的组件。vue使用自定义的组件。插槽slot使用。vue封装格子效果,一块一块的grid布局效果

[TOC]vue封装组件的简单模板贴一个简单模板方便自定义组件的时候直接复制 &lt;template&gt; &lt;div class=&quot;app...

.net6 Signalr+vue3 的运用(上)

.net6 Signalr+Vue3 的运用(上)[TOC] 什么是 SignalR?ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加...

.net6 Signalr+vue3 的运用(下)

.net6 Signalr+Vue3 的运用(下)[TOC] 上篇链接:https://www.tnblog.net/hb/article/details/7961SignalR 中的用户 Sig...

.net6 Signalr+vue3 配合Ingress Nginx的运用

.net6 Signalr+Vue3 配合Ingress Nginx的运用[TOC] 结合上篇:https://www.tnblog.net/hb/article/details/7963 项目打...

vue3 Element Plus 表格使用vue3常用界面搭配。vue3基础模板使用

一个简单的表格加时间搜索界面效果如下: 代码如下: &lt;template&gt; &lt;div class=&quot;app-container&quot;&g...

vue3 如何加prototype。vue3使用globalProperties

在2.X版本中创建一个vue 实例是通过 new Vue()来实现的,到了3.X中则是通过使用createApp这个 API返回一个应用实例,并且可...