项目准备-Element-UI入门

比眉伴天荒 2022-12-27 09:06 206阅读 0赞

前言

搭建vue+node项目


Element-UI入门

1.初始化项目:

  1. vue create element-test
  2. cunweizhao@cunweideMacBook-Pro kang2 % sudo vue create element-test
  3. Password:
  4. vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6.
  5. You may want to run the following to upgrade to Vue CLI 3:
  6. npm uninstall -g vue-cli
  7. npm install -g @vue/cli

这段的意思是要先卸载vue cli2,然后重新安装vue cli 3。

  1. sudo npm uninstall -g vue-cli

在这里插入图片描述

  1. sudo npm install -g @vue/cli

在这里插入图片描述

  1. vue create element-test

在这里插入图片描述

2.安装

  1. sudo npm i element-ui -S

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.Vue 插件
在main.js中安装

  1. import ElementUI from 'element-ui'
  2. Vue.use(ElementUI)

4.引用样式:

  1. import 'element-ui/lib/theme-chalk/index.css'

在这里插入图片描述

基本语法练习

  1. <template>
  2. <div id="app">
  3. <el-button @click="show">按钮</el-button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name: 'App',
  9. methods: {
  10. show(){
  11. this.$message.success('element-ui提示')
  12. }
  13. }
  14. }
  15. </script>
  16. <style>
  17. #app {
  18. font-family: Avenir, Helvetica, Arial, sans-serif;
  19. -webkit-font-smoothing: antialiased;
  20. -moz-osx-font-smoothing: grayscale;
  21. text-align: center;
  22. color: #2c3e50;
  23. margin-top: 60px;
  24. }
  25. </style>

在这里插入图片描述

按需加载

  • 对项目进行打包

    npm run build

  • 发现很多库太大
    在这里插入图片描述
    这是由于我们未使用按需加载,所以对element-ui进行全量打包的结果,按需加载的用法如下:

  • 安装 babel-plugin-component

    npm install babel-plugin-component -D

在这里插入图片描述

  • 修改babel.config.js

    module.exports = {
    presets: [

    1. '@vue/cli-plugin-babel/preset'

    ],
    plugins: [

    1. [
    2. 'component',
    3. {
    4. "libraryName": "element-ui",
    5. "styleLibraryName":"theme-chalk"
    6. }
    7. ]

    ]
    }

在这里插入图片描述

  • 修改 main.js引入方法
    在这里插入图片描述

插件引用:

可以通过element插件快速集成element-ui

  1. vue add element
  • 首先创建一个新的项目:
    在这里插入图片描述
    在这里插入图片描述

表单基本用法

  • el-form容器,通过model绑定数据
  • el-form-item容器,通过label绑定标签
  • 表单组件通过v-model绑定model中的数据

在这里插入图片描述

表单校验

定义校验规则,可以绑定到el-form或el-form-item

  1. export default {
  2. name: 'app',
  3. data(){
  4. const userValidator =(rule,value,callback) =>{
  5. if(value.length>3){
  6. callback()
  7. }else{
  8. callback(new Error('用户名长度必须大于3'))
  9. }
  10. }
  11. return{
  12. data:{
  13. user:'zcw',
  14. region:'区域二'
  15. },
  16. rules:{
  17. user:[
  18. {
  19. required: true, trigger:'change',message:'用户名必须录入'
  20. },
  21. {
  22. validator: userValidator, trigger:'change'
  23. }
  24. ]
  25. }
  26. }
  27. },
  28. methods:{
  29. onSubmit(){
  30. console.log(this.data)
  31. //去空判断
  32. if(!this.data.user){
  33. this.$message.error('不能为空')
  34. }
  35. }
  36. }
  37. }

在这里插入图片描述

  • 优化表单校验:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表单校验的高级用法

用法一: 动态改变校验规则
1.rules只包含一个校验规则

  1. {
  2. rules: {
  3. user: [
  4. { required: true, trigger: 'change', message: '用户名必须录入'},
  5. ]
  6. }
  7. }

在这里插入图片描述

  1. <template>
  2. <div id="app">
  3. <el-form inline :model="data" :rules="rules" ref="form">
  4. <el-form-item label="审批人" prop="user">
  5. <el-input v-model="data.user" placeholder="审批人"></el-input>
  6. </el-form-item>
  7. <el-form-item label="活动区域">
  8. <el-select v-model="data.region" placeholder="活动区域">
  9. <el-option label="区域一" value="shanhai"></el-option>
  10. <el-option label="区域二" value="beijing"></el-option>
  11. </el-select>
  12. </el-form-item>
  13. <el-form-item>
  14. <el-button type="primary" @click="onSubmit">查询</el-button>
  15. <el-button type="primary" @click="addRule">添加校验规则</el-button>
  16. </el-form-item>
  17. </el-form>
  18. </div>
  19. </template>
  20. <script>
  21. export default {
  22. name: 'app',
  23. data(){
  24. const userValidator =(rule,value,callback) =>{
  25. if(value.length>3){
  26. callback()
  27. }else{
  28. callback(new Error('用户名长度必须大于3'))
  29. }
  30. }
  31. return{
  32. data:{
  33. user:'zcw',
  34. region:'区域二'
  35. },
  36. rules:{
  37. user:[
  38. //{required: true, trigger:'change',message:'用户名必须录入'},
  39. { required: true, trigger:'blur',message:'用户名必须录入'},
  40. //{validator: userValidator, trigger:'change'}
  41. ]
  42. }
  43. }
  44. },
  45. methods:{
  46. onSubmit(){
  47. console.log(this.data)
  48. //去空判断
  49. // if(!this.data.user){
  50. // this.$message.error('不能为空')
  51. // }else if(this.data.user.length>10){
  52. // this.$message.error("不能太长")
  53. // }
  54. this.$refs.form.validate((isValid,errors)=>{
  55. console.log(isValid,errors)
  56. })
  57. },
  58. addRule(){
  59. const userValidator = (rule,value,callback) =>{
  60. if(value.length>3){
  61. callback()
  62. }else{
  63. callback(new Error('用户名长度必须大于3'))
  64. }
  65. }
  66. const newRule =[
  67. ...this.rules.user,
  68. { validator:userValidator,trigger:'change'}
  69. ]
  70. this.rules = Object.assign({ },this.rules,{ user:newRule})
  71. }
  72. }
  73. }
  74. </script>
  75. <style>
  76. #app {
  77. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  78. -webkit-font-smoothing: antialiased;
  79. -moz-osx-font-smoothing: grayscale;
  80. text-align: center;
  81. color: #2c3e50;
  82. margin-top: 60px;
  83. }
  84. </style>

在这里插入图片描述

手动控制校验状态

  • validate-status:验证状态,枚举值,共四种:
    success: 验证成功
    error: 验证失败
    validating: 验证中
    (空):未验证
    error: 自定义错误提示
    1.设置 el-form-item属性


在这里插入图片描述
在这里插入图片描述

表单属性解析

  • label-position: 标签位置,枚举值,left和top

    :inline=”false”

label-width: 标签宽度
label-suffix: 标签后缀
inline: 行内表单
disabled:设置整个form中的表单组件全部disabled,优先级低于表单组件自身的disabled
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,206人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ElementUI 快速入门

    一、概述 Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库指南 了解设计指南,帮助产品设计人员搭建逻辑清晰、结构合理且高效易用的产

    相关 项目准备

    商秀app 通过识别摄像头中的目标物体(此处为名片)来进行AR渲染的项目 主要采用了SIFT算法,并对其进行了优化。 我的工作:一部分的优化工作,主要是构建图像金字塔