基于Vue项目整合Element UI 做登录和注册表单,如果你看不懂就是我的问题。

简介: 1什么是Element Ul1.1概述1.2 功能结构2搭建环境

1什么是Element Ul

       1.1 概述:

Element ,一套为开发者,设计师和产品经理准备的基于Vue2.0的桌面端组件库。

       1,Element UI 是基于Vue2.0的

       2,Element UI提供一组组件

       3,Element UI提供组件的参考实例,直接复制

       1.2 功能结构

下面是基于Vue和Element的功能规划图:

image.gif编辑

2搭建环境

       2.1创建vue项目(前端选用的Visual Studio Code编辑器)

首先进行创建项目:vue create day100;项目名可以自定义

创建会让选择一些配置:(后面会出一期详细介绍)image.gif编辑

进入刚刚创建的目录下 cd .\day14_element_exam\

其次进行运行项目 npm run serve

即出现该页面证明vue项目创建成功:

image.gif编辑

       2.2整合element UI

进入项目目录下面:

image.gif编辑

vue add element 执行该命令

image.gif编辑

image.gif编辑

3.布局容器

       3.1布局容器

    1. 使用element-ui的布局容器(Container) 进行页面布局。对页面进行划分(上、下、左、中)
    2. image.gif编辑

    步骤一:修改src/main.js 调整 element-ui 导入位置

    image.gif编辑

    步骤二:修改src/App.vue所有内容,配置一级路由image.gif编辑

    步骤三:配置路由

    image.gif编辑

    image.gif编辑

    步骤四:编写Home.vue页面

    Element - The world's most popular Vue UI frameworkn

    进入官方网站:进入布局容器复制代码

    image.gif编辑

    image.gif编辑

    复制到Home.vue

    image.gif编辑

    展示结果如下:image.gif编辑

           3.2reset.css

    在上图中可以清晰看到整个boby中存在一圈空白,开发中通常选择重置

    去官网复制相关代码:

    在vue项目中创建

      1. 并创建 assets/reset.css ,拷贝样式 (复制下面样式即可)
      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed, 
      figure, figcaption, footer, header, hgroup, 
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
      }
      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure, 
      footer, header, hgroup, menu, nav, section {
        display: block;
      }
      body {
        line-height: 1;
      }
      ol, ul {
        list-style: none;
      }
      blockquote, q {
        quotes: none;
      }
      blockquote:before, blockquote:after,
      q:before, q:after {
        content: '';
        content: none;
      }
      table {
        border-collapse: collapse;
        border-spacing: 0;
      }
      1. image.gif进入main.js中插入如图所示:
        image.gif编辑
        现在Home.vue展示页面内容为:
        image.gif编辑

             3.3跨屏填充

      下面做一个跨屏填充现在效果如图所示:

      image.gif编辑

      第一步首页编写(App.vue)样式:如图所示

      image.gif编辑

      第二步Home.vue进行编写样式:如图所示

      image.gif编辑

      即可达到跨屏填充

      4.表单

             4.1简单表单:登录

      下面做一个基于element ui的登录表单(Login.vue)

      第一步:配置路由进行访问:如图所示

      image.gif编辑

      第二步骤编写Login.vue页面

      image.gif编辑

      第三步去官网element ui官网(网站链接已经放在上面)找到表单组件进行复制代码更改

      image.gif编辑

      image.gif编辑

      选择该表单中合适代码:(下面是我的选用)

      <template>
      <div class="login">
        <!-- 选择一组卡片 -->
        <el-card class="login-card">
          <div slot="header" class="clearfix">
            <span>爱吃豆的土豆</span>
          </div>
          <el-form ref="form" :model="userVo" label-width="80px">
            <el-form-item label="用户姓名">
              <el-input
                v-model="userVo.username"
                placeholder="请输入用户名"
              ></el-input>
            </el-form-item>
            <el-form-item label="用户密码">
              <el-input
                placeholder="请输入密码"
                v-model="userVo.password"
                show-password
              ></el-input>
            </el-form-item>
            <el-form-item>
              <el-button type="primary">登录</el-button>
              <el-button>重置</el-button>
            </el-form-item>
          </el-form>
        </el-card>
        </div>
      </template>
      <script>
      export default {
        name: "SpaceworkSpaLogin",
        data() {
          return {
            //定义一个对象接收参数
            userVo: {},
          };
        },
        mounted() {},
        methods: {},
      };
      </script>
      <style>
      .login-card{
          width: 500px;
      }
      .login {
        height: 100%;
        /* flex样式呈现*/
        display: flex;
        /*垂直排列*/
        flex-direction: column;
        align-items: center; /*由于flex-direction: column,因此align-items代表的是水平方向*/
        justify-content: center; /*由于flex-direction: column,因此justify-content代表的是垂直方向*/
      }
      </style>

      image.gif

      最后完成效果:

      image.gif编辑

             4.2复杂表单:注册

      效果图如下:

      image.gif编辑

      <template>
      <div class="register">
        <el-card class="register-card">
             <div slot="header" class="clearfix">
              <el-button type="text" prefix-icon="el-icon-s-home">注册</el-button>
            </div>
          <el-form label-position="left" label-width="80px" :model="user">
            <el-form-item label="用户名">
              <el-input
                v-model="user.username"
                placeholder="请输入用户名"
                prefix-icon="el-icon-user"
              ></el-input>
            </el-form-item>
            <el-form-item label="密码">
              <el-input
                placeholder="请输入密码"
                v-model="user.password"
                prefix-icon="el-icon-lock"
                show-password
              ></el-input>
            </el-form-item>
            <el-form-item label="确认密码">
              <el-input
                placeholder="请输入确认密码"
                v-model="user.repassword"
                prefix-icon="el-icon-lock"
                show-password
              ></el-input>
            </el-form-item>
            <el-form-item label="生日">
              <el-date-picker
                type="date"
                placeholder="选择日期"
                v-model="user.birthday"
              ></el-date-picker>
            </el-form-item>
            <el-form-item label="学历">
              <el-select v-model="user.education" placeholder="请选择学历">
                <el-option label="本科" value="shanghai"></el-option>
                <el-option label="硕士" value="beijing"></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="性别">
              <el-radio-group v-model="user.sex">
                <el-radio label="1">男</el-radio>
                <el-radio label="2">女</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="活动性质">
              <el-checkbox-group v-model="user.hobbies">
                <el-checkbox label="cy" name="type">抽烟</el-checkbox>
                <el-checkbox label="hj" name="type">喝酒</el-checkbox>
                <el-checkbox label="tf" name="type">烫头</el-checkbox>
              </el-checkbox-group>
            </el-form-item>
            <el-form-item label="婚否">
              <el-switch v-model="user.marry"></el-switch>
            </el-form-item>
            <el-form-item label="省市县">
              <div class="block">
                <el-cascader
                  v-model="user.city"
                  :options="options"
                  :props="{ expandTrigger: 'hover' }"
                  @change="handleChange"
                ></el-cascader>
              </div>
            </el-form-item>
            <el-form-item>
              <el-button type="primary">注册</el-button>
              <el-button type="info">重置</el-button>
            </el-form-item>
          </el-form>
          <!-- {{ user }} -->
        </el-card>
        </div>
      </template>
      <script>
      export default {
        data() {
          return {
            user: {
              hobbies: [],
              sex:'2'
              },
              options:[{
                  value: 'prevence',
                label: '江苏省',
                  children: [{
                  value: 'shi',
                  label: '宿迁市',
                   children: [{
                    value: 'xian',
                    label: '沭阳县'
                  }, {
                    value: 'xian',
                    label: '泗阳县'
                  },]
                  }]
              }]
          };
        },
        mounted() {},
        methods: {
             handleChange(value) {
              console.log(value);
            }
        },
      };
      </script>
      <style>
      .register{
           height: 100%;
        /* flex样式呈现*/
        display: flex;
        /*垂直排列*/
        flex-direction: column;
        align-items: center; /*由于flex-direction: column,因此align-items代表的是水平方向*/
        justify-content: center; /*由于flex-direction: column,因此justify-content代表的是垂直方向*/
      }
      .register-card {
        width: 500px;
      }
      </style>

      image.gif

       

      相关文章
      |
      8月前
      |
      Web App开发 前端开发 JavaScript
      Element UI框架中自定义input组件的placeholder样式。
      确保这些样式在你的应用程序CSS文件中定义,且该文件已正确加载到项目中。通过以上方法,可以控制Element UI组件中input的placeholder样式,使其满足特定的设计要求。这些更改都是基于CSS伪元素进行的,因此并不会对DOM结构产生改变,保持了原有结构的简洁和高效。
      740 12
      |
      8月前
      |
      存储 JavaScript 前端开发
      element ui <el-date-picker> 设置展示当前月
      在 Element UI 中,使用 `el-date-picker` 的 `value-format` 属性可将日期值格式化为指定字符串。设置 `type=&quot;month&quot;` 时,绑定值默认为 Date 对象,通过 `value-format=&quot;yyyy-MM&quot;` 可将其转为如 &quot;2023-05&quot; 格式,便于存储与处理。
      1379 0
      |
      人工智能 JavaScript 关系型数据库
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      484 14
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      |
      JavaScript 索引
      Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
      Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
      1204 0
      |
      10月前
      |
      开发框架 前端开发 JavaScript
      【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发一
      本文介绍了方舟开发框架(ArkUI)及其两种开发范式:基于ArkTS的声明式开发范式和类Web开发范式。ArkUI是用于构建HarmonyOS应用界面的UI框架,提供极简UI语法和基础设施。声明式开发范式使用ArkTS语言,以组件、动画和状态管理为核心,适合复杂团队协作;类Web开发范式采用HML、CSS、JavaScript三段式开发,适用于简单界面应用,贴近Web开发者习惯。文中还概述了两者的架构和基础能力,帮助开发者选择合适的范式进行高效开发。
      338 15
      |
      10月前
      |
      编解码 前端开发 Java
      【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发三
      本文介绍了基于声明式UI范式的图形绘制与动画效果实现方法,涵盖绘制图形、添加动画效果及常见组件说明三部分内容。在绘制图形部分,详细讲解了如何通过Circle组件为食物成分表添加圆形标签,以及使用Path组件结合SVG命令绘制自定义图形(如应用Logo)。动画效果部分则展示了如何利用animateTo实现闪屏动画,包括渐出、放大效果,并设置页面跳转;同时介绍了页面间共享元素转场动画的实现方式。最后,文章列举了声明式开发范式中的各类组件及其功能,帮助开发者快速上手构建复杂交互页面。
      368 11
      |
      6月前
      |
      存储 开发者 容器
      鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
      本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
      495 1
      鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
      |
      9月前
      |
      JavaScript 前端开发 UED
      【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发四
      本文介绍了Web组件开发与性能优化的相关内容。在Web组件开发部分,涵盖创建组件、设置样式与属性、添加事件和方法以及场景示例,如动态播放视频。性能提升方面,推荐使用数据懒加载、条件渲染替代显隐控制、Column/Row替代Flex、设置List组件宽高及调整cachedCount减少滑动白块等方法,以优化应用性能与用户体验。
      321 56
      |
      9月前
      |
      编解码 UED 开发者
      【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发之常见布局
      本文主要介绍了自适应布局与响应式布局的相关内容。自适应布局部分涵盖线性布局、层叠布局、弹性布局和网格布局,详细说明了各布局的特性及使用方法,例如线性布局中的排列、拉伸与缩放,弹性布局的方向、换行与对齐方式等。响应式布局则重点讲解了栅格系统和媒体查询,阐述如何通过栅格组件和媒体查询条件实现不同设备上的适配效果。这些技术帮助开发者灵活应对多尺寸屏幕的设计需求,提升用户体验。
      459 55
      |
      前端开发 安全 开发工具
      【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
      【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
      882 90
      【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex

      热门文章

      最新文章