ElementUI应用实践总结

简介: ElementUI应用实践总结

【1】修改UI样式如el-input__inner不生效

elementui+vue项目中,在当前vue文件中使用style scoped包裹的样式中重置input框的样式无法生效。


解决方案:在本页面重新定义style样式且不需要写scoped即可生效。

注意:为了不影响其他位置的元素样式,需要定义一个特定的class类名便于区分。

如下所示我们想要修改这里el-input的样式:

<div class="mysearch-container">
      <el-input placeholder="搜闲置..." v-model="goodsName" clearable @keyup.enter.native="search" style="width:600px">
          <el-button slot="append" icon="el-icon-search" @click="search"></el-button>
      </el-input>
</div>

那么在本文件中可以写style如下:

<style>
    .mysearch-container input.el-input__inner{
        border: 2px solid #1d2331; 
        color: #13181f;
        font-size: 22px;
    }
    .mysearch-container input::-webkit-input-placeholder {
        color: #13181f;
        font-size: 22px;
    }
    .mysearch-container .el-input-group__append, .el-input-group__prepend {
        background-color: #1d2331;
        color: #eceef1;
        vertical-align: middle;
        display: table-cell;
        position: relative;
        border: 2px solid #1d2331;
        border-radius: 4px;
        padding: 0 20px;
        width: 2px;
        white-space: nowrap;
    }
</style>


之后,另外写个<style scoped> </style> 写其他样式即可

【2】node-sass的安装

npm install --save node-sass  --registry=https://registry.npm.taobao.org


【3】表单字段的校验

① 简单提示

name: [
    { required: true, message: "姓名不能为空", trigger: "blur" }
  ],
  // 多重校验
 code: [{
          required: true,
          message: '验证码不能为空',
          trigger: 'blur'
        }, {
          min: 4,
          max: 4,
          message: '验证码长度为4',
          trigger: 'blur'
        }]


② 添加规则校验

mobile: [
    { required: true, message: "手机号码不能为空", trigger: "blur" },
    {
      pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
      message: "请输入正确的手机号码",
      trigger: "blur"
    }
  ]


③ 自定义校验器

export function isEmail (s) {
  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
import { isNumber,isIntNumer,isEmail,isPhone, isMobile,isURL,checkIdCard } from "@/utils/validate";
 var validateEmail = (rule, value, callback) => {
      if(!value){
        callback();
      } else if (!isEmail(value)) {
        callback(new Error("请输入正确的邮箱地址"));
      } else {
        callback();
      }
    };
email: [
            { validator: validateEmail, trigger: 'blur' },
      ],


【4】消息提示封装

对message进行封装,支持动态传入消息、时间以及回调函数(当消息关闭时触发)。

main.js配置如下:

import { Message } from 'element-ui';
Vue.prototype.$message = function(msg,duration=1500,callback={}) {
  return Message({
    message: msg,
    duration: duration,
    onClose:callback
  });
};
// 分别对success、warning和error等样式进行设置
Vue.prototype.$message.success = function(msg,duration=1500,callback={}) {
  return Message.success({
    message: msg,
    duration: duration,
    onClose:callback
 });
};
Vue.prototype.$message.warning = function(msg,duration=1500,callback={}) {
  return Message.warning({
    message: msg,
    duration: duration,
    onClose:callback
  });
};
Vue.prototype.$message.error = function(msg,duration=1500,callback={}) {
  return Message.error({
    message: msg,
    duration: duration,
    onClose:callback
  });
};

使用实例如下:

this.$message.success('登录成功',1000, () => {
   //这里写函数体
 });

【5】对象属性操作

① 移除对象属性

移除forminfo对象的密码

delete this.formInfo.password

【6】style与class动态绑定

:style三目运算表达式如下

<a :style={ '样式名': 三目运算符表达式 ? 'true样式值' : 'false样式值' }>
显示页面字段
</a>


:class三目运算表达式如下

<a :class="[ 三目运算符表达式 ? 'true类名' : 'false类名' ]">显示页面字段</a>
## 示例如下
<span :class="[ 2>1?'active':'' ]">{{item.tagName}}</span>

【7】富文本编辑器quill样式在前台页面不生效

即使用富文本编辑器在管理后台编辑好的页面在前台没有样式,页面标签有class但是没有对应的样式。

解决方案如下:

main.js引入样式

import 'quill/dist/quill.snow.css'

页面父元素使用ql-snow ql-editor 修饰:

 <div class="ql-snow ql-editor" v-html="newsInfo.content"></div>
目录
相关文章
|
JSON 前端开发 JavaScript
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
1440 0
AVUE:前端搬砖神器,一套基于vue+elementUI的框架
|
11月前
|
前端开发
前端学习笔记202305学习笔记第二十天-vue3.0-按需引入elementui
前端学习笔记202305学习笔记第二十天-vue3.0-按需引入elementui
35 0
|
JSON 缓存 自然语言处理
基于 vue-antd-admin 开发项目后的几点感想
基于 vue-antd-admin 开发项目后的几点感想
299 0
|
资源调度 前端开发 JavaScript
Vue3.0入门 + Vant3.0移动端实践(一)环境搭建及首页底部导航栏设计
Vue3.0入门 + Vant3.0移动端实践(一)环境搭建及首页底部导航栏设计
|
存储 JavaScript 前端开发
|
JavaScript
Vue整合ElementUI,组件使用教程,适合新手(三)
Vue整合ElementUI,组件使用教程,适合新手
261 0
Vue整合ElementUI,组件使用教程,适合新手(三)
|
JavaScript 容器
Vue整合ElementUI,组件使用教程,适合新手(二)
Vue整合ElementUI,组件使用教程,适合新手
327 0
Vue整合ElementUI,组件使用教程,适合新手(二)
|
JavaScript
Vue整合ElementUI,组件使用教程,适合新手(一)
Vue整合ElementUI,组件使用教程,适合新手
380 0
Vue整合ElementUI,组件使用教程,适合新手(一)
|
JavaScript 前端开发 Cloud Native
vue脚手架多页自动化生成实践
本文旨在针对门户类应用的场景下的Vue脚手架构建方案的一些总结和分析,通过自动化的配置脚本来生成模板化的多页应用实践,以期能够给读者提供一个基于Vue全家桶的门户类工程构建方案。
73 0
|
自然语言处理 JavaScript 前端开发
ElementUI在实际项目使用的功能总结
ElementUI在实际项目使用的功能总结
ElementUI在实际项目使用的功能总结