2022.05.30 前端学习记录

103 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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中的生命周期图像:

图片.png Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名:

  • beforeDestroy改名为 beforeUnmount
  • destroyed改名为 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------')
    }