element-ui初步使用

104 阅读1分钟

Element官网:element.eleme.cn/#/zh-CN/com…

操作步骤:

第一步:

命令窗口中在项目地址下:

输入npm i element-ui -S 安装elementui 依赖

第二步:

image.png 第三步:

image.png

复制上面代码到自己的vue文件中,然后看效果

image.png

使用element-ui做一个表单:

router下index.js文件配置路由: 把login登录页设为首页

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [

  {
    path: '/',
    name: 'login',
    component:()=>import('@/views/LoginView.vue')
  },

]

const router = new VueRouter({

  routes

})

export default router

App.vue引入路由:

<template>

  <div id="app">

    <router-view to="/"></router-view>
    <router-link></router-link>
  </div>

</template>

<style lang="scss">

</style>

LoginView.vue文件详细代码如下:

包含表单验证

<template>

  <div class="myform">

    <el-form

      :model="ruleForm"

      status-icon

      :rules="rules"

      ref="ruleForm"

      label-width="100px"

    >

      <el-form-item label="用户名" prop="username">

        <el-input v-model="ruleForm.username"></el-input>

      </el-form-item>

      <el-form-item label="邮箱" prop="email">

        <el-input v-model="ruleForm.email"></el-input>

      </el-form-item>

      <el-form-item label="密码" prop="password">

        <el-input

          type="password"

          v-model="ruleForm.password"

          autocomplete="off"

        ></el-input>

      </el-form-item>

      <el-form-item label="确认密码" prop="checkPass">

        <el-input

          type="password"

          v-model="ruleForm.checkPass"

          autocomplete="off"

        ></el-input>

      </el-form-item>

      <el-form-item>

        <el-button type="primary" @click="submitForm('ruleForm')"

          >注册</el-button

        >

        <el-button @click="resetForm('ruleForm')">重置</el-button>

      </el-form-item>

    </el-form>

  </div>

</template>

<script>

export default {

  name: "LoginView",

  data() {

    var checkUser = (rule, value, callback) => {

      console.log("用户名:", value);

      if (value.trim() == "") {

        callback(new Error("请输入用户名"));

      } else if (!/^[0-9a-zA-Z_\u4e00-\u9fa5]{5,10}$/.test(value)) {

        callback(new Error("用户名为5-10位中英文数字或者下划线"));

      } else {

        callback();

      }

    };

    var checkEmail = (rule, value, callback) => {

      console.log("邮箱:", value);

      if (value.trim() == "") {

        callback(new Error("邮箱不能为空"));

      } else if (value.indexOf("@") == -1 || value.indexOf(".") == -1) {

        callback(new Error("邮箱需要含有@和."));

      } else if (value.length < 6) {

        callback(new Error("邮箱需大于6位"));

      } else {

        callback();

      }

    };

    var validatePass = (rule, value, callback) => {

      console.log("密码:", value);

      if (value.trim() == "") {

        callback(new Error("请输入密码"));

      } else {

        callback();

      }

    };

    var validatePass2 = (rule, value, callback) => {

      if (value === "") {

        callback(new Error("请再次输入密码"));

      } else if (value !== this.ruleForm.password) {

        callback(new Error("两次输入密码不一致!"));

      } else {

        callback();

      }

    };

    return {

      ruleForm: {

        password: "",

        username: "",

        checkPass: "",

        email: "",

      },

      rules: {

        password: [{ validator: validatePass, trigger: "blur" }],

        email: [{ validator: checkEmail, trigger: "blur" }],

        username: [{ validator: checkUser, trigger: "blur" }],

        checkPass: [{ validator: validatePass2, trigger: "blur" }],

      },

    };

  },

  methods: {

    submitForm(formName) {

      this.$refs[formName].validate((valid) => {

        if (valid) {

          alert("注册成功");

        } else {

          console.log("注册失败");

          return false;

        }

      });

    },

    resetForm(formName) {

      this.$refs[formName].resetFields();

    },

  },

};

</script>

<style lang="scss">

.myform {

  width: 600px;

  margin: 50px auto;

}

</style>