1、不能使用v-show
2、关于插槽的巨坑
这里我真的是摸索了好久。
小程序版本:
hbuilderx版本:
其他版本不知道会不会出现以下情况。
如果组件中带有插槽,那么使用插槽时有以下要注意:
1、如果子组件通过slot,向外部传递对象或属性变量,且该对象或者属性变量没有被使用到,么插槽内的内容将不可以使用原本页面中的对象或者属性。如下图:
首先是子组件 List组件:
然后是父组件:
可以看到子组件list的插槽中插入了内容,但是这时候v-slot:test=
后面显性定义了子组件list向外传出的params
,这时候我注释掉了params
的使用,那么这个bool
所在的view
标签将无法显示!!!!。
2、如果子组件循环渲染了slot,父组件的slot中使用了当前自身组件的属性会对象时会出错,具体出错方式千奇百怪,目前我也没找到规律,有时候会直接全部消失,有时候只显示最后一个其他的全部消失。如下图:
还是那个子组件list:
解决办法!!!:
我们可以先将isEdit这个属性传入子组件list中,在通过slot插槽传出来,进行使用,如下图:
3、如果在插槽中调用方法,并将将插槽传出的对象作为实参传给方法。那么改变对象中的属性将不会实时渲染,如下图:
还是刚才那个子组件list:
这样子写isChecked
不会在视图上实时渲染。
只能像下图这么写:
4、插槽中内容的样式不能放在,父组件class样式的内部:
如下图,图中有.popup-box
,.address-item
,组件List,可以看到.address-item
在.popup-box
下,并且在组件List的插槽
中,这时候如果讲.address-item
样式写在.popup-box
下,那么样式将失效。必须将样式提出来,独立的放在外部。: