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

       

      相关文章
      |
      2月前
      |
      JavaScript 数据可视化
      vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
      这篇文章介绍了如何使用vue-cli 2和3版本来创建Vue项目,并详细说明了两者之间的主要区别。
      98 5
      vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
      |
      2月前
      |
      JavaScript 容器
      乾坤qiankun框架搭建 主应用为vue3的项目。
      乾坤qiankun框架搭建 主应用为vue3的项目。
      160 2
      |
      2月前
      |
      JavaScript
      Vue CLi脚手架创建第一个VUE项目
      Vue CLi脚手架创建第一个VUE项目
      36 3
      |
      1月前
      |
      数据采集 监控 JavaScript
      在 Vue 项目中使用预渲染技术
      【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
      |
      18天前
      |
      JavaScript 前端开发
      如何在 Vue 项目中配置 Tree Shaking?
      通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
      |
      2月前
      |
      JavaScript 数据可视化
      vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
      这篇文章详细介绍了Vue CLI 3版本创建项目时的Runtime-Compiler和Runtime-only两种模式的区别、Vue程序的运行过程、render函数的使用、eslint的关闭方法,以及Vue CLI 2和3版本配置文件的不同和脚手架3版本创建项目的配置文件配置方法。
      55 3
      vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
      |
      2月前
      |
      JavaScript
      如何在 Vue 项目中选择合适的模块格式
      【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
      21 7
      |
      1月前
      Vue3 项目的 setup 函数
      【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
      |
      2月前
      |
      JavaScript 前端开发 编译器
      在 Vue 项目中使用 ES 模块格式的优点
      【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
      37 6
      |
      1月前
      |
      JavaScript 测试技术 UED
      解决 Vue 项目中 Tree shaking 无法去除某些模块
      【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。