1.change ($event,“你要传递的其他值”),使用el-select组件时,想传递多个值。

或者 在el-option上的value属性上传递对象 eg:

:value="{'classId': ele.classId,'index': $keys,'sonIndex':$key}"

2.value-key 是作为绑定对象的值时的必填项,作为唯一标志,el-select

3.循环遍历多个el-select组件,选项选中,数据更新了,但是视图不更新。

方法a. this.tabData.examList = Object.assign({}, this.tabData.examList);//进行深拷贝 实现视图强更新
方法b. Vue.set(target,key,value); target可以是对象和数组,key可以是数字或字符串,value是要更改的具体数值
           eg:  Vue.set(this.tabData.examList,index,this.tabData.examList[index]); examList是数组包对象,index是数组的索引
                  当遇到Vue is not defind 错误时,在import Vue页面设置 window.Vue = Vue;即全局变量
参考链接:https://blog.csdn.net/yihanzhi/article/details/74200618
4.组件内引入文件,eg:

import tools from '@/common/tools/index.js'

为什么就可以找到src目录下的文件?因为在build/webpack.base.conf.js里面定义了简写形式

alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}

所以@ == src ,也造成了@后面要加/ ,等价于  src/ 。

5.clearValidate()要用在before-close函数和取消按钮函数里,其他地方不好使;Dom模板里不能用this,eg:$refs[‘form’].clearValidate();

解:Element-UI中的Dialog的内容是懒渲染的,即在第一次被打开之前,传入的默认slot不会被渲染到DOM上,如果要操作DOM,需要在open事件回调中开发代码。总结:直接阅读组件底部的Attributes、Slot、Events相关说明。可以通过node_modules读一下element-ui中Dialog组件的源码,使用BEMCSS规范,props用法,各个Vue用法的规范使用。

6.Dom里面的form-item循环里validator校验不能用this.xxx,用了会报错;不是循环的validator校验就可以用this.xxx,不会报错;自定义校验函数的回调函数callback(new Error('文案));和callback('文案'); 第二种回调用法在for循环方式中不生效。

7.菜单路由路径和Vue-router里面的配置是全匹配,有空格都不行。

8.Form的每个item中的validator自定义校验逻辑只能有一个,如果是2个,就会promise的状态一直未padding,排查问题可用代码的删除排查法,删到最简单来排查。

9.多个表单校验,可用Promise.all[].then();很好用。

9.针对Vue响应不及时问题,setTimeOut是个很好的解决问题的办法。Event loop概念,但是有没有其他更好的办法呢?Object.assign(); Vue.$set(); 除此之外还有一个watch的巧用,数据变化就重新复制(解决jiaoshi工作台切换单元综合演练数据不更新问题)

10.webpack兼容问题,在Vue项目中,Vue文件的style中的type='text/css';script中的type='text/javascript',与webpack4版本不兼容,需要删除掉这样的写法。

11.Vue项目中DOM渲染结果会有 ‘data-v-xxx’字样,是因为Vue组件中使用了scoped,保证各组件间样式不互相影响,给每个component都做了唯一的标记,每引入一个新组件都会多一个data-v-xxx字样。

12.Element-UI的表单提交中,如果加了自定义校验规则,最后一定要有return callback();不然表单执行不下去的。曾经找了半天错误,才找到这个原因。

       checkLogId(rule, value, callback){// 校验LodId格式 以C开始,后面是数字
let logId = this.ruleForm.logId;
let headLetter = logId.slice(0,1);
let otherLetter = logId.slice(1);
let rules = /^\+?[1-9][0-9]*$/; // 正整数规则
let re = new RegExp(rules);
if( headLetter !== "C" ){
return callback(new Error('打点ID格式添加错误'));
}else if( !re.test(otherLetter) ){
return callback(new Error('打点ID格式添加错误'));
}
return callback();
},

13. 模板列表使用flex布局,在最后一行,不足一行时,两端分布的解决:

一行n个,在最后放n个写死的item,宽度和item保持一样,高度设置为0。

延伸:是否有更优雅更好的实现方式呢~

14. 列表中为什么这个样式都需要放外面?

el-button--default > span

解析:a. scoped利用CSS3属性选择器的原理来控制作用域,而Vue组件会给html元素标签添加data-*的属性。

b. 在当前组件引入另一子组件时,子组件生成的HTML元素并没有被加上属性作用域;而编译后的CSS选择器加在了‘尾选择器’上,这样的偏差导致了scoped内的样式对于子组件样式的覆盖重写失效。

  c. Scoped只对当前页面直接使用的标签样式有效

  d. 解决:另起一个不加scoped的style标签,在里面用CSS选择器层级覆盖控制子组件样式。

延伸:如果更优地解决这样的场景?CSS编译时如何在尾部加入属性选择器的?

15. 搜索中重置逻辑不可用?

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

解析:formName此处要和el-form的refmodel保持一致,而且每个el-form-item的prop属性对应值于v-modal绑定值这样使用resetFields重置才会生效,效果是用data里面值覆盖了原来的值,潜台词就是data里面如果有默认值,此时item里面就是默认值而不是空值。

el-button--default > span 建站列表为什么这个样式都需要放外面?

element-ui一些注意点:的更多相关文章

  1. 使用element ui 日期选择器获取值后的格式问题

    一般情况下,我们需要给后台的时间格式是: "yyyy-MM-dd" 但是使用Element ui日期选择器获取的值是这样的: Fri Sep :: GMT+ (中国标准时间) 在官 ...

  2. element ui 1.4 升级到 2.0.11

    公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...

  3. [坑况]饿了么你是这样的前端——vue+element ui 【this dependency was not found:'element-ui/lib/theme-chalk/index.css'】

    element ui 坑况:今日pull代码,潇洒npm run dev ,被告知:this dependency was not found:'element-ui/lib/theme-chalk/ ...

  4. Vue + Element UI项目初始化

    1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...

  5. Element UI——本地引入iconfont不显示

    前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...

  6. Html | Vue | Element UI——引入使用

    前言 做个项目,需要一个效果刚好Element UI有,就想配合Vue和Element UI,放在tp5.1下使用,但是引入在线的地址各种报错,本地引入就完美的解决了问题! 代码 __STATIC_J ...

  7. 分享一个自搭的框架,使用Spring boot+Vue+Element UI

    废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...

  8. 上传图片组件封装 element ui

    // element ui 文档地址: http://element.eleme.io/#/zh-CN <template> <div> <div class=" ...

  9. vue项目使用element ui的Checkbox

    最近使用到element ui的下拉多选框Checkbox Checkbox用法可参考与于 http://element.eleme.io/#/zh-CN/component/checkbox Che ...

  10. vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用

    其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...

随机推荐

  1. iOS-RAC学习笔记(一)——RACStream

    RACStream是RACSignal和RACSequence的父类,定义了一些流的操作方法.从名字上可以看出来,这个对象就像流一样可以往任何一个出口流,同时也可以给这个流设计一道道关卡,改变流(这里 ...

  2. 软raid 实验

    RAID0 条带卷 2+ 100% 读写速度快,不容错 RAID1 镜像卷 2 50% 读写速度一般,容错 RAID5 带奇偶校验的条带卷 3+ (n-1)/n 读写速度快,容错,允许坏一块盘 RAI ...

  3. clear---清除当前屏幕

    clear命令用于清除当前屏幕终端上的任何信息.

  4. Dig A Well For Yourself

    See Paul's essay:  , I found paul is a genius, double checking. Mars June 2015

  5. [Recompose] Refactor React Render Props to Streaming Props with RxJS and Recompose

    This lesson takes the concept of render props and migrates it over to streaming props by keeping the ...

  6. 一个美丽的java烟花程序

    <img src="http://img.blog.csdn.net/20150625104525974?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...

  7. xml方式封装通信数据方法

    xml方式封装通信数据方法 public static function xmlToEncode($data) { $xml = ""; foreach($data as $key ...

  8. vue2.0-transition动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. BZOJ3511: 土地划分

    [传送门:BZOJ3511] 简要题意: 给出n个点,m条边,每个点有A和B两种形态,一开始1为A,n为B 给出VA[i]和VB[i],表示第i个点选择A和B形态的价值 每条边给出x,y,EA,EB, ...

  10. Network Stack

    Network Stack 目录 1 Overview 2 Code Layout 3 Anatomy of a Network Request (focused on HTTP) 3.1 URLRe ...