麻烦老师看一下这个报错
来源:3-6 Toast 弹窗组件的开发
Yuujio
2021-07-19 19:43:10
<template>
<div class="wrapper">
<img src="http://www.dell-lee.com/imgs/vue3/user.png" class="wrapper_img" />
<div class="wrapper_input">
<input
class="wrapper_input_content"
placeholder="请输入用户名"
v-model="data.username"
/>
</div>
<div class="wrapper_input">
<input
type="password"
class="wrapper_input_content"
placeholder="请输入密码"
v-model="data.password"
/>
</div>
<div class="wrapper_login-button" @click="handleLogin">登录</div>
<div class="wrapper_login-link" @click="handleRegisterClick">立即注册</div>
<Toast/>
</div>
</template>
<script>
import { useRouter } from "vue-router";
import axios from "axios";
import { reactive } from "@vue/reactivity";
import { post } from "../../utils/request";
import Toast from '../../components/Toast.vue';
export default {
name: "Login",
components:{ Toast },
setup() {
const data = reactive({
username: "",
password: "",
showToast: true,
});
const router = useRouter();
const handleLogin = async () => {
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 {
data.showToast = true;
}
} catch {
alert("请求失败");
}
};
const handleRegisterClick = () => {
router.push({ name: "Register" });
};
return { data, handleLogin, handleRegisterClick };
},
};
</script>
<style lang="scss" scoped>
@import "../../style/viriables.scss";
.wrapper {
position: absolute;
top: 50%;
left: 0;
right: 0;
transform: translateY(-50%);
&_img {
width: 0.66rem;
height: 0.66rem;
display: block;
margin: 0 auto 0.4rem auto;
}
&_input {
height: 0.48rem;
margin: 0 0.4rem 0.16rem 0.4rem;
padding: 0 0.16rem;
background-color: #f9f9f9;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 0.06rem;
&_content {
line-height: 0.48rem;
border: none;
outline: none;
width: 100%;
background: none;
font-size: 0.16rem;
color: $content-notice-fontcolor;
&::placeholder {
color: $content-notice-fontcolor;
}
}
}
&_login-button {
margin: 0.32rem 0.4rem 0.16rem 0.4rem;
background: #0091ff;
box-shadow: 0 0.04rem 0.08rem 0 rgba(0, 145, 255, 0.32);
border-radius: 0.04rem;
line-height: 0.48rem;
text-align: center;
font-size: 0.16rem;
color: #fff;
}
&_login-link {
text-align: center;
font-size: 0.14rem;
color: $content-notice-fontcolor;
}
}
</style>
<template>
<div class="toast">内容</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.toast{
position: fixed;
left: 50%;
top: 50%;
padding: .1rem;
transform: translate(-50%,-50%);
background:ragb(0,0,0,.35);
border-radius: .05rem;
color: #FFF;
}
</style>
1回答
好帮手慕慕子
2021-07-20
同学你好,在源码中测试同学粘贴的代码没有出现报错,猜测可能是依赖安装的问题,建议同学将node_modules文件夹手动删除后,执行npm install 重新安装所有的依赖,安装完成之后,再执行npm run serve命令启动项目试试。
祝学习愉快~
相似问题