vue.js实现登录页面

一、登录界面路由配置

1.在view目录下创建LoginView.vue组件,如图所示:

二、第二步

2.在router的index.js文件中配置路由,如图所示:

第一步先引入

1.在index.js建立Login页面

2.在建立好的LoginView.vue 组件中引入axios

在引入之前要在package.json里面安装好插件,点开vue.coding右键点在集成终端打开然后输入那npm i axios

配置好之后点开package.json就能看到这些代码

之后可以开始在LoginView.vue中写入

export default {

    name: "LoginView",

    data() {

        return {

                }

            }

      }

这里写入代码,例如

tip:注意:1.是export,不是exports。

        2.是routes,是没有r的,不是routers!!

        3.路由名称可以自定义,组件名称看引入时给了什么名字

三、开始设计登录的页面

这些代码的标签样式可以去element挑选直接复制粘贴修改一下就差不多了

<template>

  <div class="login">

    <div class="box">

      <h1>mall-admin</h1>

      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm">

        <el-form-item prop="name">

          <el-input placeholder="请输入用户名" v-model="ruleForm.name" prefix-icon="el-icon-user-solid"></el-input>

        </el-form-item>

        <el-form-item prop="password">

          <el-input v-model="ruleForm.password" placeholder="请输入密码" prefix-icon="el-icon-lock" show-password></el-input>

        </el-form-item>

        <el-form-item>

          <el-button class="login-btn" type="primary" @click="submitForm('ruleForm')">登录</el-button>

        </el-form-item>

      </el-form>

    </div>

  </div>

</template>

四、效果图如下

五、登录页的代码如下

<template>

  <div class="login">

    <div class="box">

      <h1>mall-admin</h1>

      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm">

        <el-form-item prop="name">

          <el-input placeholder="请输入用户名" v-model="ruleForm.name" prefix-icon="el-icon-user-solid"></el-input>

        </el-form-item>

        <el-form-item prop="password">

          <el-input v-model="ruleForm.password" placeholder="请输入密码" prefix-icon="el-icon-lock" show-password></el-input>

        </el-form-item>

        <el-form-item>

          <el-button class="login-btn" type="primary" @click="submitForm('ruleForm')">登录</el-button>

        </el-form-item>

      </el-form>

    </div>

  </div>

</template>

<script>

import axios from 'axios';

export default {

  name: "LoginView",

  data() {

    return {

      ruleForm: {

        name: "",

        pasword: "",

      },

      rules: {

        name: [

          { required: true, message: "请输入用户名", trigger: "blur" },

        ],

        password: [

          { required: true, message: "请输入密码", trigger: "blur" },

        ],

      },

    };

  },

  methods: {

    submitForm(formName) {

      //表单校验

      this.$refs[formName].validate((valid) => {

        if (valid) {

          axios.post("http://106.52.94.26:3001/user/login", {

            //传什么参数

            username: this.ruleForm.name,

            password: this.ruleForm.password

          })

            //成功回调参数

            .then(res => {

              //判断是否成功,并跳转到首页

              if (res.data.msg == "登录成功") {

                this.$message({

                  showClose: false,

                  message: "登录成功",

                  type: 'success'

                })

                this.$router.push("/")

              }

            })

            .catch(err => {

              if (err.response.data.msg == "用户不存在") {

                this.$message({

                  showClose: true,

                  message: err.response.data.msg,

                  type: 'error'

                });

              } else {

                this.$message({

                  showClose: true,

                  message: err.response.data.msg,

                  type: 'error'

                });

              }

            });


 

        } else {

          alert('error submit!!');

          return false;

        }

      });

    },

  },

};

</script>

<style scoped>

.login {

  display: flex;

  justify-content: center;

}

.box {

  margin-top: 100px;

  box-shadow: #ccc 0px 0px 8px;

  width: 400px;

  padding: 50px;

}

.box h1 {

  text-align: center;

  color: #409EFF;

}

.login-btn {

  width: 100%;

}

</style>



 

  • 22
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Vue来实现登录页面,具体步骤如下: 1. 创建一个Vue实例,用于渲染登录页面。 2. 在Vue实例中添加一个data对象,用于存储登录表单的数据。 3. 使用Vue的指令,在登录页面中添加表单元素,如文本框、单选框等。 4. 使用Vue的方法,添加表单校验功能。 5. 为表单元素添加事件处理函数,用于处理用户提交的表单数据。 6. 使用Ajax将表单数据发送到服务器,完成登录操作。 ### 回答2: 使用Vue实现一个简单的登录页面可以按照以下步骤进行: 1. 引入Vue和Vue Router,并在HTML文件中创建一个根元素用于挂载Vue应用。 2. 创建一个Vue实例,并指定要挂载的元素。 3. 在Vue实例中定义一个data属性,用于存储用户输入的用户名和密码。 4. 在模板中使用Vue的双向数据绑定将输入框与data属性绑定。 5. 定义一个方法来处理用户的登录操作,可以通过发送AJAX请求与后端进行交互,验证用户的身份。 6. 在模板中使用v-on指令将登录按钮与定义的登录方法绑定。 7. 可以使用Vue的路由功能,将登录页面作为一个组件,通过路由链接进行跳转。 下面是一个示例的代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login Page</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script> </head> <body> <div id="app"> <h1>登录</h1> <form> <label for="username">用户名:</label> <input type="text" id="username" v-model="username"> <br> <label for="password">密码:</label> <input type="password" id="password" v-model="password"> <br> <button @click="login">登录</button> </form> </div> <script> const Login = { template: ` <div> <h1>登录</h1> <form> <label for="username">用户名:</label> <input type="text" id="username" v-model="username"> <br> <label for="password">密码:</label> <input type="password" id="password" v-model="password"> <br> <button @click="login">登录</button> </form> </div> `, data() { return { username: '', password: '' } }, methods: { login() { // 发送AJAX请求进行登录验证 } } } const routes = [{ path: '/', component: Login }] const router = new VueRouter({ routes }) const app = new Vue({ router }).$mount('#app') </script> </body> </html> ``` 以上代码就是一个简单的登录页面实现,使用Vue实现数据的双向绑定和按钮点击事件的处理逻辑,通过Vue Router的路由链接来跳转到登录页面。在实际开发中,还需要根据具体的需求完善验证逻辑、界面设计等内容。 ### 回答3: 要使用Vue实现一个登录页面,首先需要创建一个Vue实例,然后在该实例中定义登录页面的相关数据和方法。以下是一个简单的登录页面实现示例: ```html <template> <div> <h2>登录</h2> <form @submit.prevent="login"> <label for="username">用户名:</label> <input id="username" type="text" v-model="username" required> <br> <label for="password">密码:</label> <input id="password" type="password" v-model="password" required> <br> <button type="submit">登录</button> </form> <p v-if="error">登录失败,请检查用户名和密码。</p> </div> </template> <script> export default { data() { return { username: '', password: '', error: false }; }, methods: { login() { // 在这里执行登录逻辑,例如向服务器发送登录请求 if (this.username === 'admin' && this.password === '123456') { // 登录成功 // 重定向到首页或其他页面 console.log('登录成功'); } else { // 登录失败 this.error = true; console.log('登录失败'); } } } }; </script> ``` 上述示例代码中,页面包含一个用户名输入框、一个密码输入框和一个登录按钮。用户在输入框中输入用户名和密码,点击登录按钮后会触发`login`方法。在`login`方法中,我们可以执行登录逻辑,比如发送登录请求给服务器。如果用户名和密码正确,登录成功并在控制台打印登录成功的消息;否则登录失败,并设置`error`变量为`true`,使页面上显示登录失败的提示信息。 这只是一个简单的登录页面示例,具体实现可以根据实际需求进行扩展和优化。同时,为了使登录页面更加漂亮和交互友好,还可以添加样式和其他验证、提示等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值