这个随笔的来源于这样一个应用场景:用户点击table中的row能够修改当前row的数据,并且可以选择保存或是取消;后台提供两个接口---getTable数据和putRow修改数据;我们如何用vue+element-ui实现?在我的思路中,关键点是克隆一个当前table数据,如果用户取消修改,我能够将被修改的row数据还原。(不选择给row数据克隆副本)
while,也许这也不是最佳实践。
基本类型克隆
var m = 1; var b = m b //1 m = 2 b //1
引用类型克隆
var a = [1,2,3] 22:21:01.801 undefined 22:21:12.802 k=a 22:21:12.839 (3) [1, 2, 3] 22:21:22.770 k.push(1) 22:21:22.795 4 22:21:26.082 a 22:21:26.112 (4) [1, 2, 3, 1]
a被改变了,这可不是我需要的。
简单的,var d = a.slice(0),或是
var d = Object.assign([],a) d //[1, 2, 3, 1] a.push(3) //5 d //[1, 2, 3, 1]
在ECMAScript 2016,2017,和2018中新增功能里也提过使用
const ElectricCar2 = Object.defineProperties({}, Object.getOwnPropertyDescriptors(Car));
做深拷贝。
新的语言特性让Fronter从繁复的工具封装中解脱了,而更专注于页面交互逻辑。点赞(☆w☆)