vue中is特性
将已写好的组件挂载到已存在的元素上,遇到某些元素,此时的组件将失去作用,比如:
<ol> <ul>-----------------认<li>
<table>--------------------认<tr>
<select>-------------------认<option>
就是某些标签下只能使用指定的标签,否则无法被浏览器正确解析,例如UL,表中,a,选择这些。(例如UL一般跟着li,选择一般跟着选项这样),而如下代码并不能被浏览器正确的解析,最终导致组件不能生效。
<ul>
<component-name></component-name>
</ul>
如果我们想要在这些标签UL,表中,a,选择下使用组件,想要他正确的被解析出来,就需要使用IS属性。is发挥作用
是属性的值是组件名,例如在UL下使用一个组件,代码可以这样写:
//声明一个组件
new Vue({
components:{
'component-name':{
template:'<p>你好,这是一个示例</p>'
}
}
})
// ul下使用组件
<ul>
<li is="component-name"></li>
</ul>
:is 实现多个组件之间的切换
<!DOCTYPE html>
<html>
<head>
<title>动态组件切换选项卡2</title>
</head>
<body>
<div id="app">
<div>
<a href="" @click.prevent="componentName='com-html'">html</a>
<a href="" @click.prevent="componentName='com-css'">css</a>
<a href="" @click.prevent="componentName='com-js'">js</a>
<component :is="componentName"></component>
</div>
</div>
</body>
<script type="text/javascript" src="vue/vue.js"></script>
<script type="text/javascript">
let ComHtml={
template:"<p>我是html</p>"
}
let ComCss={
template:"<p>我是css</p>"
}
let ComJs={
template:"<p>我是js</p>"
}//定义组件对象
let app = new Vue({
el:'#app',
data:{
componentName:"com-html"
},
components:{
ComHtml,
ComCss,
ComJs
}//注册组件
})
</script>
</html>
运行结果如下:上面就实现了简单的选项卡切换功能了