ElementUI基本介绍及登录注册案例演示2

简介: ElementUI基本介绍及登录注册案例演示2

三.Element完成登录注册

1. 环境配置及前端演示

1.1 安装Element-UI模块

在终端执行以下命令进行下载

npm install element-ui -S

当我们下载完成后可以在目录static/package.json下面的dependencies中找到

1.2 安装axios和qs(发送get请求和post请求)

npm i axios -S

npm i qs -S

1.3 导入依赖

// 新添加1
import ElementUI from 'element-ui' 
// 新添加2,避免后期打包样式不同,要放在import App from './App';之前
import 'element-ui/lib/theme-chalk/index.css' 

将依赖导入项目的目录src/main.js文件中

注: 我们在导入依赖和样式的时候一定要放在import App from './App'之前

将Vue实例与element进行挂载

// 新添加3
Vue.use(ElementUI)   
Vue.config.productionTip = false

2 页面布局

2.1组件与界面

我们可以在Element官网上找到组件,寻找自己需要的组件,直接复制代码粘贴使用即可

也可以根据上面提供的代码进行自定义修改获取自己的组件

当界面布局好后,我们也需要去配置好自己的路由

router/index.js中进行配置

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/Login',
      name: 'Login',
      component: Login
    },
    {
      path: '/Register',
      name: 'Register',
      component: Register
    },
  ]
})

当然,我们也需要进行导入视图界面

import Login from '@/view/Login.vue'
import Register from '@/view/Register.vue'

3.方法实现功能数据交互

3.1 通过方法进行页面跳转

(1)在组件上定义点击的方法

<el-link type="primary" @click="gotoRegister()">用户注册</el-link>

(2)在js代码的方法中进行定义

export default {
  name: 'Login',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
  ,methods:{
    gotoRegister(){
      this.$router.push('/Register');
    }
  }
}

代码只演示了登录跳转注册,反之同理

演示效果

3.2 axios发送get请求

(1)将后端项目运行

(2)将安装好的axios导入项目

import axios from 'axios'

(3)前端编写方法向后端发送请求

doSubmit(){
      let url = "http://localhost:8080/user/userLogin";
      let params = {
        username:this.username,
        password:this.password
      };
      axios.get(url,{params:params}).then(r=>{
      if(r.data.success){
        this.$message({
                  message: '登录成功',
                  type: 'success'
                });
      }else{
        this.$message.error('登录失败,账号或密码错误');
      }
      }).catch(e=>{
      })
    }

注:发送请求之前需要在data值中定义好参数

data () {
    return {
      msg: 'Welcome to Your Vue.js App',
      username:"",
      password:""
    }
  }

3.2 对后端发送登录请求效果演示

4.导入接口管理模块,将vue实例和配置进行挂载

4.1在api包中配置所有接口地址

在api包中定义action.js,配置接口地址

export default {
  'SERVER': 'http://localhost:8080/', //服务器
  'SYSTEM_USER_DOLOGIN': 'user/userLogin', //登陆
  'SYSTEM_USER_DOREG': '/userAction.action', //注册
  'getFullPath': k => { //获得请求的完整地址,用于mockjs测试时使用
    return this.SERVER + this[k];
  }
}

4.2 将所有所需要的模块进行统一管理

在api包中定义http.js,将所需模块全部放置统一进行管理全局配置

安装整合依赖

npm i vue-axios -S

将实例与全局配置进行挂载

在main.js中加入以下代码

import axios from '@/api/http'                 
import VueAxios from 'vue-axios' 
Vue.use(VueAxios,axios)

配置到这里我们可以节省上面之前写过的代码,在定义前端方法向后端发送请求中可以改为以下代码

doSubmit(){
      let url = this.axios.urls.SYSTEM_USER_DOLOGIN;
      let params = {
        username:this.username,
        password:this.password
      };
      this.axios.get(url,{params:params}).then(r=>{
      if(r.data.success){
        this.$message({
                  message: '登录成功',
                  type: 'success'
                });
      }else{
        this.$message.error('登录失败,账号或密码错误');
      }
      }).catch(e=>{
      })
    }

5.前后端分离实现注册

5.1前端模板

<template>
  <div class="login-wrap">
      <el-form class="login-container">
        <h1 class="title">用户注册</h1>
        <el-form-item label="">
          <el-input type="text" v-model="username" placeholder="注册账号" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="">
          <el-input type="password" v-model="password" placeholder="注册密码" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" style="width:100%;" @click="doSubmit()">提交</el-button>
        </el-form-item>
        <el-row style="text-align: center;margin-top:-10px">
          <el-link type="primary">忘记密码</el-link>
          <el-link type="primary" @click="gotoLogin()">用户登录</el-link>
        </el-row>
      </el-form>
    </div>
</template>

5.2 接口定义的方法

int Register(User record);

5.3 后端进行实现接口

@Override
    public int Register(User record) {
        return userMapper.insertSelective(record);
    }

5.4 Controller层方法

 @RequestMapping("/userRegister")
    @ResponseBody
    public JsonResponseBody<?> userRegister(UserVo userVo, HttpServletResponse response){
        userVo.setId("10");
        int i = userService.Register(userVo);
        if(i>0){
            return new JsonResponseBody<>("用户注册成功!",true,0,null);
        }else{
            return new JsonResponseBody<>("用户注册失败!重新输入",false,0,null);
        }
    }

5.5 前端向后端发起请求

export default {
  name: 'Register',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App',
      username:"",
      password:""
    }
  },
  methods:{
    gotoLogin(){
      this.$router.push('/Login');
    },
    doSubmit(){
      let url = this.axios.urls.SYSTEM_USER_DOREG;
      let params = {
        username:this.username,
        password:this.password
      }
      this.axios.post(url,params).then(r=>{
        console.log(r)
      if(r.data.success){
        this.$message({
                  message: '注册成功',
                  type: 'success'
                });
      }else{
        this.$message.error('注册失败');
      }
      }).catch(e=>{
      })
    }
  }
}

5.6 效果演示

当注册完成后查看数据库,出现刚刚注册的用户时说明注册成功

目录
相关文章
|
小程序
微信小程序vantweapp自定义侧边栏
微信小程序vantweapp自定义侧边栏
539 0
|
Python Windows
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
|
11月前
|
数据采集 运维 供应链
工业4.0时代:数字化工具的核心价值与应用
本文探讨了工业数字化的浪潮及其工具选择的重要性。随着制造业、能源和物流等领域的数字化转型,企业需通过数据采集与分析、自动化控制及协同办公等手段提升效率。文章介绍了智能制造、供应链管理和设备维护中的应用场景,并强调高效协作工具在任务可视化管理、跨部门协作优化等方面的关键作用。最后,从功能匹配度、易用性、扩展性和成本效益四个方面为企业选择合适的数字化工具提供了指导,助力企业在竞争中占据先机。
|
Linux 图形学
深入理解Qt定时器:QTimer的魅力与挑战(一)
深入理解Qt定时器:QTimer的魅力与挑战
8151 0
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
|
11月前
|
JSON 监控 API
京东商品列表 API 接口系列(京东 API)
京东商品列表API接口为开发者提供获取店铺内商品详细信息的功能,包括名称、价格、库存、图片、ID、销量等。通过HTTP GET请求并包含必要参数(如店铺ID、API密钥),可获取JSON格式的商品列表数据,适用于展示、库存管理、价格监控等场景。示例代码展示了使用Python调用该接口的方法,返回的数据包含状态码、商品总数、分页信息及具体商品详情。
|
XML 存储 安全
探索 doc 和 docx 文件格式的区别
探索 doc 和 docx 文件格式的区别
902 3
|
JavaScript 前端开发 数据可视化
Element Plus图片上传组件二次扩展
Element Plus图片上传组件二次扩展
495 0
|
存储 缓存 安全
在Linux中,什么是软件仓库,并且如何管理它?
在Linux中,什么是软件仓库,并且如何管理它?
|
Web App开发 移动开发 JavaScript
通过H5(浏览器/WebView/其他)唤起本地app
通过H5(浏览器/WebView/其他)唤起本地app