Vue+elementui实现点击切换登录方式(超简单)

这篇博客介绍了一个新手如何使用Vue和ElementUI轻松实现登录页面中点击切换账号登录和短信登录的功能,包括HTML、JavaScript和CSS的实现代码,并展示了最终效果。

1.前言

使用Vue + elementui实现切换登录方式,新手党!!!

2.需求

点击按钮切换账号登录短信登录方式

3.实现效果

如图所示:
在这里插入图片描述

HTML代码:

<template>
    <div style="min-height:800px;padding: 100px 0 0 640px;background-color:#f4f4f4">
        <div class="login_box">
            <p class="login_title">
                <span :class="isActiveIndex === 0 ? 'isActiveTitle' : ''" @click="accountLogin">账号登录</span><!-- 利用三元运算符判定点击了哪个登录,从而绑定样式 -->
                <span :class="isActiveIndex === 1 ? 'isActiveTitle' : ''" @click="smsLogin">短信登录</span>
            </p>
            <el-form v-if="isActive" ref="loginForm" :model="loginForm" label-width="80px">
                <el-form-item label="账号:">
                    <el-input v-model=
### 使用 VueElementUI 创建带标签页切换功能的表单 #### 1. 安装依赖库 为了使用 `Vue` 和 `ElementUI`,首先需要安装这些必要的包。 ```bash npm install vue@2.x element-ui axios ``` #### 2. 初始化项目结构并引入样式文件 在项目的入口文件中注册全局组件,并导入所需的 CSS 文件: ```javascript import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); ``` #### 3. 编写 Tab 切换逻辑与表单验证规则 下面是一个完整的例子来展示如何创建一个多标签页形式的动态表单。此实例展示了两个主要部分——Tab 控件以及 Form 组件之间的交互方式[^1]。 ```html <template> <div id="app"> <!-- Tabs --> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="基本信息" name="first"> <BasicInfoForm ref="basicInfo"/> </el-tab-pane> <el-tab-pane label="高级选项" name="second"> <AdvancedOptionsForm ref="advancedOptions"/> </el-tab-pane> </el-tabs> <!-- 提交按钮 --> <el-button type="primary" @click="submitForms">提交</el-button> </div> </template> <script> export default { data() { return { activeName: "first", }; }, methods: { handleClick(tab, event) { console.log(tab, event); // 当前激活项发生变化时触发网络请求或其他操作 this.loadTabData(tab.name); }, loadTabData(name){ switch (name){ case 'first': // 加载第一个面板的数据... break; case 'second': // 加载第二个面板的数据... break; } }, submitForms(){ let forms = ['basicInfo', 'advancedOptions']; Promise.all(forms.map(form => new Promise((resolve,reject)=>{ this.$refs[form].validate(valid=>{ valid ? resolve(): reject(); }); }))).then(()=>{ alert('所有表单都已通过验证!'); }).catch(err=>alert('有未通过验证的表单')); } } }; </script> ``` 在此模板里定义了一个名为 `el-tabs` 的控件用于显示多个不同的分组;每个子节点代表一个单独的标签页(`el-tab-pane`)。当用户点击某个特定标签时会调用 `handleClick()` 方法处理对应的业务逻辑,比如加载新数据或执行其他动作[^3]。 另外还提供了一种机制用来遍历所有的子级表单并通过它们各自的 API 接口来进行整体性的有效性检查[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值