Ваш метод клонирования не работает с массивом объектов:
const basicInfo = [{ firstName: "John" , lastName: "Doe" }]
const newbasicInfo = basicInfo.slice()
Этот метод создает "мелкую копию" - это означает, что он работает с числами, строками и т. Д. но на самом деле не создает клон объектов. Клонированные объекты таким образом сохраняют свои ссылки, поэтому они фактически будут «теми же» объектами, что и в исходном массиве.
const basicInfo = [{ firstName: "John" , lastName: "Doe" }]
const newbasicInfo = JSON.parse(JSON.stringify(basicInfo))
Этот метод создает «глубокую копию» - всеон будет клонирован, независимо от того, насколько «глубоко» они вложены.
Если у вас есть массив простых значений, поверхностная копия более эффективна , но если у вас есть объекты вваш массив вам нужен глубокая копия .
Итак, это не проблема Vue, а более общий вопрос JavaScript .
Вот небольшой фрагмент, чтобы проиллюстрировать разницу:
const basicInfo1 = [{
firstName: "John",
lastName: "Doe"
}]
const newbasicInfo1 = basicInfo1.slice()
newbasicInfo1[0].firstName = "Johnnyboy"
console.log('basicInfo1: ', basicInfo1)
console.log('newbasicInfo1: ', newbasicInfo1)
const basicInfo2 = [{
firstName: "John",
lastName: "Doe"
}]
const newbasicInfo2 = JSON.parse(JSON.stringify(basicInfo2))
newbasicInfo2[0].firstName = "Johnnyboy"
console.log('basicInfo2: ', basicInfo2)
console.log('newbasicInfo2: ', newbasicInfo2)