vue中is的作用和用法

摘要:总所周知,ul里面嵌套li的写法是html语法的固定写法(还有如table,select等)。my-component是我们自己写的组件,但是html在渲染dom的时候,my-component对ul来说并不是有效的dom,甚至会报错。

is的作用

 <ul>
  <li></li>
  <li></li>
  <li></li>
</ul>

总所周知,ul里面嵌套li的写法是html语法的固定写法(还有如table,select等)。

//code1
 <ul>
  <my-component></my-component>
  <my-component></my-component>
</ul>

my-component是我们自己写的组件,但是html在渲染dom的时候,my-component对ul来说并不是有效的dom,甚至会报错。


is的诞生

正是因为html模板的限制,于是就诞生了is。接下来我们就用is解决上面的问题~

 <ul>
  <li is='my-component'></li>
</ul>

首先你得注册my-component组件,全局或者局部都成。 <li is='my-component'></li>其实就相当于<my-component></my-component>,语义上是一样一样的,就是解决了html模板的限制。


is的用法

<component> + is 的骚操作

<!-- 组件会在 `件名` 改变时改变 -->
<component :is="组件名变量"></component>

只要在data里弄个变量,给变量赋值就能动态的切换组件。这个其实在某些场景还是非常好用的安利一下。


不受html模板限制的情况

vue官网提醒以下来源使用模板的话,这条限制是不存在的:

字符串 (例如:template: '...')
单文件组件 (.vue)
<script type="text/x-template">
也就是说只有在用cdn方式写vue的时候才会出现这种问题?开发基本用框架,好像没啥事的样子。


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_8168