为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第13天 Vue3 + TS仿知乎专栏企业级项目

标签:
Vue.js

课程名称:Vue3 + TS仿知乎专栏企业级项目
课程章节:第8章 6~12节 & 第9章
主讲老师:张轩

课程内容

8、9章分别为权限管理和上传组件
权限管理中老师用循序渐进的方式教我们把Message组件改造成可以使用API调用的方式,刚开始用的vnode使用createApp挂载的,有点杀鸡用牛刀的感觉,后来改成了h函数+render函数的方式。
上传组件这里的门道非常的,基本的需求有:上传前的检查、自定义信息(上传前、上传中和上传后)、可视化进度条、上传预览、删除图片等,篇幅所限也比较详细地讲了插槽的运用,在上传的时候判断props是否传入来触发beforeUpload、uploading、fileUploaded和uploadedError等阶段。
路由验证变得复杂起来了,因为了结合后端API交互,还有一些全局状态的管理。之前的路由状态都是在App.vue中管理的,有些不到位不合适越是划好流程图后获取用户信息的逻辑在beforeEach钩子中使用。
图片描述

router.beforeEach((to, from, next) => {
  const { user, token } = store.state
  const { requiredLogin, redirectAlreadyLogin } = to.meta
  if (!user.isLogin) {
    if (token) {
      axios.defaults.headers.common.Authorization = `Bearer ${token}`
      store
        .dispatch('fetchCurrentUser')
        .then(() => {
          if (redirectAlreadyLogin) {
            next('/')
          } else {
            next()
          }
        })
        .catch((e) => {
          console.error(e)
          localStorage.removeItem('token')
          next('login')
        })
    } else {
      if (requiredLogin) {
        next('login')
      } else {
        next()
      }
    }
  } else {
    if (redirectAlreadyLogin) {
      next('/')
    } else {
      next()
    }
  }
})

课程收获

这两章的干货满满,循序渐进的方式可以让我们理想改进的思路,对业务的需求有更深刻的理解。特别是Uploader的讲解,接下来自己实现一下比较完整的逻辑吧。
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
2
获赞与收藏
2

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消