ERPbug
在修改erp – bug所碰到的问题集锦
父子组件以及非父子组件通信传参
1.父组件传递数据给子组件
父组件写法
1 | <parent> |
子组件接收写法
1 | 第一种: |
2.子组件与父组件通信
vue文档中是这么解释的:如果子组件想要改变数据呢?这在vue中是不允许的,因为vue只允许单向数据传递,这时候我们可以通过触发事件来通知父组件改变数据,从而达到改变子组件数据的目的.
子组件写法
1 | <template> |
父组件写法
1 | <div> |
3.非父子组件通信
vue文档中是这么解释的:如果2个组件不是父子组件那么如何通信呢?这时可以通过eventHub来实现通信.
所谓eventHub就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件.
第一种:
1 | 创建一个公共的js,美其名曰:bus.js作为中间仓库来传值。 |
组件A中
1 | <template> |
组件B中
1 | <template> |
这就完成了非父子组件的传参
数组、map集合的遍历
element-ui dialog 无法关闭
Vue
变异方法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
pop() 方法用于删除并返回数组的最后一个元素。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
sort() 方法用于对数组的元素进行排序。
reverse() 方法用于颠倒数组中元素的顺序。
替换数组
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
concat() 方法用于连接两个或多个数组。
slice() 方法可从已有的数组中返回选定的元素。
其他
split() 方法用于把一个字符串分割成字符串数组。
VUE截取字符串
1 | let str = 'abcdef'; |
vue 数组合并
1 | treeData=[{ |
Array.isArray()
Array.isArray() 用于确定传递的值是否是一个 Array。
1 | Array.isArray([1, 2, 3]); |
VUE学习笔记:数组的concat()、slice()和splice()
concat()方法:
concat()方法可以简单的将其理解为合并数组。基于当前数组中的所有项创建一个新数组。简单的说,concat()先给当前数组创建一个副本,然后将接收到的参数添加到这个副本(数组)的末尾,最后返回一个新的数组。来看个简单的示例:
1 | var arr = [`大漠`,'30','W3cplus']; |
上面代码演示的concat()方法传递的值不是数组,这些值就会简单添加到结果数组(arr2)的末尾。
除此之外,concat()传递的值还有其他的使用方法:同时传递一个或多个数组,如下所示:
1 | var arr = ["大漠","30"]; |
另外,concat()还可以传递空值(也就是说没有传递参数),此时它只是复制当前数组,并且返回一个副本。如下所示:
1 | var arr = [1,2]; |
从上面几个示例,不难看出:concat()方法是在数组的副本上进行操作并返回新构建的数组,所以并不会影响到原来的数组。
concat() vs. push()
前面说过push()方法可以也可以给数组传参数,同样是在数组的末尾添加一个或多个值(数组)。那么与concat()有什么不同之处呢?别的先不多说,先来看一个示例:
1 | // push()方法 |
Chrome输出的结果告诉我们:push()和concat()方法都可以将传的参数添加到数组的后面,只不过push()是在原数组上操作(改变的是原数组),concat()不会改变原数组,创建原数组的副本,并且把传的参数添加到新数组后面。
如果传的是数组又将是一个什么情形呢?还是看实例吧。
1 | // push()方法 |
push()传递的参数是数组时,将整个数组传给原数组末尾,如示例中得到的结果[“a”, “b”, Array[2], Array[3]],而concat()传递的参数是数组时,将参数中数组的每一个数组项添加到原数组的末尾,如示例中得到的结果[“a”, “b”, “c”, “d”, 1, 2, 3]。
slice()方法:
concat()方法可以在原数组基础上创建一个副本数组,其实slice()方法它也能基于当前数组创建一个新数组,而且对原数组也并不会有任何影响。
slice()接受一个或两个参数,即要返回项的起始和结束位置。当只给slice()传递一个参数时,该方法返回从该参数指定位置开始到当前数组末尾的所有项。如下面示例:
1 | // 测试数组函数,将输出数组的length和第个key:value |
假设将数组arr的每个数组项存放在一个小格子中,并且按数组的索引号从左向右存放。slice()方法执行之后,将会按传递的参数之前的值从格子中移除,如下图所示:
slice()还可以传两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项,如:
1 | var arr = [0,1,2,3,4,5,6]; |
el-table 一行显示不下 …显示
:show-overflow-tooltip="true"