vue+element+table只循环一次改变新数组与旧数组的值,新数组是从旧数组里面分出来,也就是多选对象引用类型特性的使用

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+element+table只循环一次改变新数组与旧数组的值,新数组是从旧数组里面分出来,也就是多选对象引用类型特性的使用相关的知识,希望对你有一定的参考价值。


1、html部分

<div id="app">
	<el-table :data="tableData" border @selection-change="handleSelectionChange">
		<el-table-column type="selection"></el-table-column>
		<el-table-column prop="name" label="姓名"></el-table-column>
		<el-table-column prop="age" label="年龄" show-overflow-tooltip></el-table-column>
	</el-table>

	<el-select style="margin-top: 3em" v-model="selectedVal" placeholder="请选择" @change="changeSelected">
		<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.value">
		</el-option>
	</el-select>
</div>

需要导入以下文件

<link rel="stylesheet" href="/node_modules/element-ui/lib/theme-chalk/index.css">
<script src="/node_modules/vue/dist/vue.js"></script>
<script src="/node_modules/element-ui/lib/index.js"></script>


2、javascript部分

new Vue(
	el: "#app",
	data() 
		return 
			tableData: [
				
					id: 1,
					name: '张三',
					age: 15
				,
				
					id: 2,
					name: '李四',
					age: 16
				,
				
					id: 3,
					name: '王五',
					age: 17
				,
				
					id: 4,
					name: '赵六',
					age: 18
				,
				
					id: 5,
					name: '田七',
					age: 19
				
			],
			multipleSelection: [],
			options: [
				
					id: 1,
					value: 1,
					label: 'value1'
				,
				
					id: 2,
					value: 2,
					label: 'value2'
				,
				
					id: 3,
					value: 3,
					label: 'value3'
				,
				
					id: 4,
					value: 4,
					label: 'value4'
				,
				
					id: 5,
					value: 5,
					label: 'value5'
				
			],
			selectedVal: null
		
	,

	methods: 
		// 表格多选
		handleSelectionChange(val) 
			this.multipleSelection = val;
		,

		// 选择框触发
		changeSelected(e) 
			// 利用了对象的引用类型特性
			// 因为使用的是同一个地址
			// 所以被选中的新数组改变了
			// 旧数组也会跟着改变
			this.multipleSelection.forEach(item => 
				item.age = item.age + e;
			);
		
	
);

3、完整代码

gitee(码云) - mj01分支 - referenceAddress 文件夹

以上是关于vue+element+table只循环一次改变新数组与旧数组的值,新数组是从旧数组里面分出来,也就是多选对象引用类型特性的使用的主要内容,如果未能解决你的问题,请参考以下文章

vue如何循环渲染element-ui中table内容

Vue——element-UI el-table表格根据搜索条件表格值改变颜色

vue element table expand 扩展行点击行展示且保证只展示一行

element UI+vue:表格使用cell-style改变单元格样式

vue2.0之element table的使用

【记录】关于element-table expand 第一次点击不会渲染和数据覆盖问题