基于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

       

      相关文章
      |
      JSON 自然语言处理 前端开发
      【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
      【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
      752 72
      【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
      |
      人工智能 安全 程序员
      用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
      用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
      1552 12
      |
      JavaScript 数据安全/隐私保护
      Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
      Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常用工具函数,并且持续不断维护更新中。另外,组件库全量使用 TypeScript,支持自动按需引入和 Tree Shaking 等,能够显著提升开发效率,降低开发成本。
      863 5
      Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
      |
      人工智能 JavaScript 关系型数据库
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      558 14
      【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
      |
      前端开发 JavaScript Java
      【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
      【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
      727 13
      【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
      |
      SQL JavaScript 安全
      【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
      【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
      657 11
      【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
      |
      人工智能 JavaScript 安全
      【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
      【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
      869 13
      【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
      |
      JavaScript 前端开发 UED
      Vue 项目中如何自定义实用的进度条组件
      本文介绍了如何使用Vue.js创建一个灵活多样的自定义进度条组件。该组件可接受进度段数据数组作为输入,动态渲染进度段,支持动画效果和内容展示。当进度超出总长时,超出部分将以红色填充。文章详细描述了组件的设计目标、实现步骤(包括props定义、宽度计算、模板渲染、动画处理及超出部分的显示),并提供了使用示例。通过此组件,开发者可根据项目需求灵活展示进度情况,优化用户体验。资源地址:[https://pan.quark.cn/s/35324205c62b](https://pan.quark.cn/s/35324205c62b)。
      583 0
      |
      资源调度 JavaScript 前端开发
      Pinia 如何在 Vue 3 项目中进行安装和配置?
      Pinia 如何在 Vue 3 项目中进行安装和配置?
      1354 4
      |
      监控 JavaScript 前端开发
      ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
      基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
      1067 12

      热门文章

      最新文章