持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
part1 算法题
1,【189】旋转数组力扣链接地址
for(let i = 0;i < 3;i++){
nums.unshift(nums.pop());
}
console.log(nums)
}
var test1 = function(nums,k){
function reverse(nums,i,j){
while (i < j){
[nums[i],nums[j]] = [nums[j],nums[i]] //解构赋值
i++
j--
}
}
\
let n = nums.length;
k %= n
if(k){
reverse(nums,0,n-1)
reverse(nums,0,k-1)
reverse(nums,k,n-1)
}
return nums
}
2,【541】反转字符串 力扣链接地址
// 反转字符串的函数
function reserve(s, i,j) {
let temp = null
if (j < s.length) {
[s[i],s[j]] = [s[j],s[i]]
}
}
let arr = s.split('')
// 隔k个之后,再去调换字符
for(let i = 0;i < arr.length;i = i + 2*k){
//判断当前字符串是不是够k个,不够的话,就全都反转
let l = i,r = i + k > arr.length ? arr.length - 1 : i + k - 1
while(l < r){
reserve(arr,l,r)
l++
r--
}
}
return arr.join('')
};
part2 vue3学习
vue3中的生命周期
vue3中的生命周期图像:
Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名:
beforeDestroy改名为beforeUnmountdestroyed改名为unmounted
生命周期钩子可以有两种方式可以使用:
- 1,就是以配置项的形式去使用,和vue2相同。
- 2,就是以compositionAPI的形式使用。
注意:
当在配置项中也写了钩子,当在setup中也写了钩子时,setup一定是最先开始执行的,剩下的钩子也是组合api的钩子函数先执行。
// 以组合api的形式使用
首先要引入钩子
import { onBeforeMount, onBeforeUnmount, onBeforeUpdate, onMounted, onUpdated } from 'vue'
setup() {
let sum = ref(0)
// 注意,在setup中,不能使用beforeCreate和created两个钩子,没有对应使用的方法
// 其他对应的钩子都是以函数的形式出现的,例如,onBeforeMount就是在挂载之前执行对应的函数体
onBeforeMount(()=>{})
onMounted(()=>{})
onBeforeUpdate(()=>{})
onUpdated(()=>{})
onBeforeUnmount(()=>{})
unMounted(()=>{})
// 返回一个对象
return {
sum,
msg,
person
}
},
// 通过配置项的形式来使用生命周期钩子
beforeCreate() {
console.log('------beforeCreate------')
},
created() {
console.log('------created------')
},
beforeMount() {
console.log('------beforeMount------')
},
mounted() {
console.log('------mounted------')
},
beforeUpdate() {
console.log('------beforeUpdate------')
},
updated() {
console.log('------updated------')
},
// 下面这两个是和vue2中不同的地方,再vue3中,也可以写beforeDestory和destoryed,不报错也不会奏效
beforeUnmount() {
console.log('------beforeUnmount------')
},
unMounted() {
console.log('------unMounted------')
}