题目分为两部分,下面我将分别讲解。
- vue3+ts数组去重方案
数组去重在前端开发中是一个常见的需求,Vue3 和 TypeScript 结合使用时,一个简单且通用的去重方案是通过 Set 对象实现。
具体步骤如下:
- 首先,定义一个数组。
const arr: Array<number> = [1, 2, 2, 3, 4, 4, 5, 5, 6];
- 使用 Set 对象来去重。
const arrSet = new Set(arr);
const result = Array.from(arrSet);
这里,我们可以使用 Set 对象实现去重,Set 对象在 ES6 中引入,它允许你存储任何类型的唯一值。
- 打印结果。
console.log(result); // [1, 2, 3, 4, 5, 6]
这里,我们使用了 Array.from 方法将 Set 对象转换为数组,并打印输出结果。
另外,除了使用 Set 对象去重,我们还可以使用 reduce 或者 filter 方法来实现,具体实现可以参考下面的示例代码。
示例代码一:通过 reduce 和 indexOf 实现去重。
const arr1: Array<number> = [1, 2, 2, 3, 4, 4, 5, 5, 6];
const result1: Array<number> = arr1.reduce((pre: Array<number>, cur: number) => {
if(pre.indexOf(cur) === -1) pre.push(cur);
return pre;
}, []);
console.log(result1); // [1, 2, 3, 4, 5, 6]
示例代码二:通过 filter 和 indexOf 实现去重。
const arr2: Array<number> = [1, 2, 2, 3, 4, 4, 5, 5, 6];
const result2: Array<number> = arr2.filter((item, index, arr) => {
return arr.indexOf(item) === index;
});
console.log(result2); // [1, 2, 3, 4, 5, 6]
- reactive/ref 响应式显示流程分析
Vue3 中的响应式系统通过 reactive 和 ref 函数实现,其中 reactive 用于创建响应式对象,而 ref 则用于创建响应式变量。
具体流程如下:
- 首先,使用 reactive 函数创建响应式对象。
import { reactive } from 'vue';
const state = reactive({
count: 0,
name: 'lucas'
});
这里,我们使用 reactive 函数创建了一个包含 count 和 name 两个属性的响应式对象。
- 在模板中使用响应式对象。
<template>
<div>
<p>
count is {{ state.count }}
</p>
<button @click="add">add</button>
</div>
</template>
这里,我们在模板中使用 state 对象的 count 属性,并绑定到界面上。
- 在组件中定义响应式变量。
import { ref } from 'vue';
export default {
setup() {
const greeting = ref('Hello, world!');
return {
greeting
}
}
}
这里,我们使用 ref 函数创建了一个名为 greeting 的响应式变量,并返回给组件。
- 在模板中使用响应式变量。
<template>
<div>
<p>{{ greeting }}</p>
</div>
</template>
这里,我们在模板中使用 greeting 变量,并绑定到界面上。
另外,对于响应式变量的修改,我们需要使用 .value 的方式来获取和修改,例如:
import { ref } from 'vue';
const count = ref(0);
console.log(count.value); // 0
count.value++;
console.log(count.value); // 1
这里,我们通过 .value 的方式获取和修改 count 变量的值。
同时,我们需要注意,当使用 reactive 和 ref 创建响应式对象和变量时,会自动执行类似于监听器的内部操作,从而实现响应式数据的双向绑定。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3+ts数组去重方及reactive/ref响应式显示流程分析 - Python技术站