第四章、深入理解vue组件

4-1.使用组件的细节

a.使用is解决html出现bug

如下 table下面应该为tr,所以页面渲染的时候没有找到tr是有问题的,所以是有小bug,所以table中必须是tr

 

 

 

b.改上面bug,table中必须是tr,这是h5的编码规范。加上is后的意思tr是row的意思,符合h5的代码规范。所以,ul下面<li is="row"></li>还有select下<option is="row"></option>

 

c.

 

d. ref的应用,用在div这样的标签上,获取的是div块的dom。ref应用在组件上的时候,获取的是组件的引用。

《1》this.$refs.hello获取的是当前组件对应的dom的元素节点,这是在div的标签上的情况,如果是组件呢?看《2》

 

 

 

 

 

 《2》ref应用在组件上,获取的是组件的引用,也就是组件的实例。可以应用其中的属性,比如this.$refs.one.number,number为one所在组件的实例属性。

 

 

 

 

 

 

 

 

 

完整代码如下:

 

 

 

 

4-2、父子组件间的数据传递

a.

 

 

 

b.以下会报错(原因:子组件不能更改父组件穿过来的参数),单项数据流(父组件通过属性向子组件传递数据)

改对的

 

 

c.完整的父子组件传值

 

 

 

4-3、组件参数校验与非props特性

a.父组件传参到子组件,不带着冒号:传的是字符串,带着冒号:传的是数字

 

b.子组件接收的参数,要么是数字要么是字符串。

 

c. required:true/false,为属性是必传或者不必传。default为默认值,当获取不到属性值得时候,用默认值

 

d.字符串的长度,函数中的value为传入的父组件属性值,长度必须大于5,

 

e.props特性 是父组件传值给子组件,子组件props接收子属性。dom中父组件没有此属性。

非props特性是父组件传值给子组件,子组件不接收子属性。dom中父组件有此属性。

 

4-4、给组件绑定原生事件

a.直接绑定自定义事件,页面不触发事件

组件中绑定的事件为“自定义事件”,如果要触发自定义事件,必须通过子组件事件向外触发自定义事件。

 

 

 

b.在元素上绑定的原生事件是可以触发的

 

c.对的代码

 

 

 

d.就想在父组件用.native监听“原生事件”

 

 

4-5.非父子组件传值(Bus/总线/发布订阅模式/观察者模式)

 a.点击dell全部变成dell,点击Lee全部变成Lee,第一步如下

b.

 

 

 

4-6.在Vue中使用插槽

a.想在子组件中放入父组件传递过来的一些内容

 

 

 

 

b.用v-html显示父传的属性

 

 

 

 c.slot插槽---父传子(优雅传DOM结构)

 (1)

 

把插槽中的p改成h1

 

(2)slot中可以定义默认值

 

 

(3)具名插槽

 

 

 

 

 (d)具名插槽默认值

 

4-7、作用域插槽

a.常规

 

 

 

b.作用域插槽:当子组件做循环或者某一部分的dom结构由外部传入的时候,用作用域插槽。

子组件向父组件插槽传数据,父组件接收数据必须用template,并用slot-scope接收子组件传过来的值

 

 c.若将如上li改成h1

 

 

4-8、动态组件与v-once指令

(a)常规写法

b.动态组件写法

vue中自带component(动态组件)标签,这个组件中有:is属性

 

 

 

c.v-once指令使用

如果用a方法则每次change的时候都是创建显示块,消除将要消失的块。所以不利于性能。用v-once后,可以缓存这两个块,快速提高静态内容的展示效率。

 

posted @ 2019-08-18 17:03  前端王者(法师)  阅读(193)  评论(0编辑  收藏  举报