vue2.0中的:is和is的区别

此文首发于 lijing0906.github.io

最近,工作之余在翻阅vue.js的官方文档,在查看到动态组件解析 DOM 模板时的注意事项的时候,讲到一个特殊的is特性,觉得很有意思,就来写一篇自己理解的总结。

现场

写栗子实践

其实看过之后,其实是有点懵的,这两个有啥区别,怎么用呢?

仔细分析,没那么难懂,参考这篇博客,我们也写一个栗子来试试

我们平时用局部注册的情况更多些,那我就写一个局部注册组件的栗子。

替换部分内容看渲染结果
  1. 单独看自定义组件componentA,把is="componentA"改成is="componentB",会发现这部分的内容由原来的组件componentA的内容变成了componentB的内容

    这里我们会发现,虽然标签是< componetA>,但是没有显示componentA的内容,而是显示componentB的内容,说明vue在渲染组件的内容时,是有检测is特性的,如果有被赋值那就渲染该值对应的组件的内容,如果没有is特性,那就渲染标签对应的组件内容。 那么如果把< componetA>换成< div>、< p>等等符合W3C的标签都能正常显示is被赋值的组件的内容!这样就与解析 DOM 模板时的注意事项不谋而合了!

  2. 单独看自定义组件componentB,在父组件中能看到,是:is,这是数据绑定,那么被绑定的值必须在当前实例的data中定义。栗子中绑定的是two,two的值是什么那componentB就渲染什么。

    同样,如果把< componetB>换成< div>、< p>等等符合W3C的标签都能正常显示:is被赋值的组件的内容!这样就是动态组件了!

最后

举栗子实践分析了一番,总算明白了一些,总结一下:

  • 相同点:都能实现动态组件的效果
  • 不同点::is是数据绑定,绑定的值必须在data中定义,is被赋值的值须是子组件的名称
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值