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

【学习打卡】第9天 项目实战:Vue.js仿京东到家电商全栈项目前端开发

课程名称:前端工程师
课程章节: 第三章 项目登录&注册页开发
主讲老师:Dell

课程内容: 第三章 登录&注册页开发

3-7通过代码拆分增加逻辑可维护性

代理优化: 组件相关的功能逻辑都封装在组件里; 简化 setup 函数:

  1. 代码很多,优化下。 将toast弹窗相关的数据和方法放到一起

  2. Toast所有相关的都放到toast中统一的维护
    图片描述

3-8 Setup函数的职责以及注册功能的实现

  1. 使用 toRef

name 2s后不会变,不是响应式的数据,所以要用ref、reactive
ref处理基础数据类型
reactive处理对象、数组等
注意toRefs、toRef
reactive只是对象是响应式的,里面的值不是响应式的。
所以利用toRefs可以将里面的多个值变成响应式。
toRef是给一个默认值,虽然没有data但不会报错。

  1. data这个对象是响应式的,里面的数据不是
    toRefs将username、password变成响应式的
    就不用return data了,直接return username、password
    template中要使用的就要return!
  2. show、toastMessage、showToast都要导出
  3. 按功能块去整理代码逻辑
    setup主要做流程的函数,其他的逻辑封装到各自组件/模块中

3-9 Setup函数的职责以及注册功能的实现

autocomplete=“new-password” 关闭chrom的自我填充

处理注册流程、处理注册跳转流程、代码执行的一个流程,分开写,易读,逻辑更清晰。

//  (一)处理登陆流程
const useLoginEffcet = (showToast) => {
  const router = useRouter()
  const data = reactive({username: "", password: ""})
// 请求后端的逻辑,异步操作
  const handleLogin = async () => {
      //  发一个请求
      // 先执行await中的代码,后面的地址出错的时候,就会抛出
    try {
      const result = await post("/api/user/login", {
        username: data.username,
        password: data.password,
      });
       if (result?.errno === 0) {
        localStorage.isLogin = true;
        router.push({ name: "Home" });
      } else {
        showToast("登陆失败");
      }
    } catch (e) {
      showToast("请求失败");
    }
  }
  const {username,password } = toRefs (data)
  return {username,password,handleLogin}
}
// 处理注册跳转
const uesRegisterEffect = () => {
  const router = useRouter()
  const handleRegisterClick = () => {
  // 路由跳转功能,跳转到name是Register这个router页面
   router.push({ name: "Register" });
  }
  return { handleRegisterClick }
 }
export default {
  name: "Login",
  //  记得定义Toast子组件
  components: { Toast },
  // 职责就是告诉你,代码执行的一个流程
  setup() {
    const { show, toastMessage, showToast } = useToastEffect()
    const { username, password, handleLogin }= useLoginEffcet( showToast )
    const { handleRegisterClick } = uesRegisterEffect()

    return { username, password , show, toastMessage, handleLogin, handleRegisterClick };
  }
};
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消