**课程名称:前端工程师
课程章节: 第三章 项目登录&注册页开发
主讲老师:Dell
transform: translateY(-50%) 实现元素垂直居中效果,代码如下:
.wrapper { // 垂直居中的写法 position: absolute; top: 50%; left: 0; right: 0; // transform: translateY(-50%) 实现元素垂直居中效果 transform: translateY(-50%);
可以选择一个表单元素的提示文字,设置它的样式,示例:
<!-- ::placehover属于伪元素,可以选择一个表单元素的提示文字,设置它的样式 --> <div class="wrapper__input"> <input class="wrapper__input__content" placeholder="请输入用户名" v-model="username" /> </div>
路由 router:
<template> <router-view /> </template>
配置路由:
import { createRouter, createWebHashHistory } from 'vue-router' const routes = [ { path: '/', name: 'Home', component: () => import(/* webpackChunkName: "home" */ '../views/home/Home') }, { path: '/cartList', name: 'CartList', // 同步路由 // component: Home // 动态路由 component: () => import(/* webpackChunkName: "cartList" */ '../views/cartList/CartList') }
useRouter()获取路由器
<div class="wrapper__longin-link" @click="handleRegisterClick">
// 引入useRouter import { useRouter } from "vue-router"
// 处理注册跳转 const uesRegisterEffect = () => { const router = useRouter() const handleRegisterClick = () => { // 路由跳转功能,跳转到name是Register这个router页面 router.push({ name: "Register" }); } return { handleRegisterClick } }
const router = createRouter({ history: createWebHashHistory(), routes }) // 路由守卫,全局检验功能,beforeEac:每次路由即将改变之前,路由在每次切换时,会执行 router.beforeEach((to, form, next) => { // 获取本地存储的登陆信息,登陆状态 // 解析赋值 const { isLogin } = localStorage; const { name} = to; // 判断是否登陆 或者 to.name === 'Login' 判断是否进入的login页,如果是,就执行当前Login页面,如果不是,跳转到login登陆页面 const isLoginOrRegister = ( name === 'Login'|| name ==='Register' ); (isLogin || isLoginOrRegister ) ? next() : next({ name: 'Login' })
to,from,next是规定的参数 指每次做路由跳转之前都会执行的方法,不管路由切换的时候都会执行
1)next()方法可以理解为中间件继续执行的方法 ,路由的控制参数,常用的有next(true)和next(false)
2)to是跳到哪个页面的信息
3)from是从哪里跳过来
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} }
学会了使用元素垂直居中的效果,路由守卫实现基础登陆校验功能!