继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第10天 Web前端架构师2022版

大白T_T
关注TA
已关注
手记 56
粉丝 9
获赞 1

课程章节: 第8周 前端基础技术回顾和巡礼

主讲老师:张轩

课程内容:

今天学习的内容包括:

3-1 新特性简介
3-2 为什么有 composition API
3-3 composition API 基础知识

课程收获:

新特性一览

  • 向后兼容
  • 新特性
  • breaking changes
  • 性能提升
  • typescript 支持

为什么要推出 vue3

  • 随着功能的增长,复杂组件的代码变得越来越难以维护。
  • vue2 对 Typescript 的支持有局限

图片描述

理想状态,从左边转换为右边,这样代码的可读性变得更清晰,代码的维护变得更容易

图片描述

使用函数是最好的解决方案

  • 模块的来源是哪里
  • 参数有什么
  • 返回时什么
  • 返回值的用途
	<template>
  <h1>{{count}}</h1>
  <h1>{{double}}</h1>
  <button @click="increase">+1</button>
</template>

import { ref } from "vue"

setup() {
  // ref 是一个函数,它接受一个参数,返回的就是一个神奇的 响应式对象 。我们初始化的这个 0 作为参数包裹到这个对象中去,在未来可以检测到改变并作出对应的相应。
  const count = ref(0)
  const double = computed(() => {
    return count.value * 2
  })
  const increase = () => {
    count.value++
  }
  return {
    count,
    increase,
    double
  }
}

使用 ref 还是 reactive 可以选择这样的准则

第一,就像刚才的原生 javascript 的代码一样,像你平常写普通的 js 代码选择原始类型和对象类型一样来选择是使用 ref 还是 reactive。
第二,所有场景都使用 reactive,但是要记得使用 toRefs 保证 reactive 对象属性保持响应性。

import { ref, computed, reactive, toRefs } from 'vue'

interface DataProps {
  count: number;
  double: number;
  increase: () => void;
}

setup() {
  const data: DataProps  = reactive({
    count: 0,
    increase: () => { data.count++},
    double: computed(() => data.count * 2)
  })
  const refData = toRefs(data)
  return {
    ...refData
  }
}

在 setup 中使用的 hook 名称和原来生命周期的对应关系

  • beforeCreate -> 不需要
  • created -> 不需要
  • beforeMount -> onBeforeMount
  • mounted -> onMounted
  • beforeUpdate -> onBeforeUpdate
  • updated -> onUpdated
  • beforeUnmount -> onBeforeUnmount
  • unmounted -> onUnmounted
  • errorCaptured -> onErrorCaptured
  • renderTracked -> onRenderTracked
  • renderTriggered -> onRenderTriggered
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP