这个is
属性连接到计算值“activeComp”v-bind
(简写:
),以便显示“comp-one”组件或“comp-two”组件。
App.vue
:
<template>
<h1>Dynamic Components</h1>
<p>App.vue switches between which component to show.</p>
<button @click="toggleValue = !toggleValue">Switch component</button>
<component :is="activeComp"></component>
</template>
运行示例 »
请参阅下面的更多示例。
这个is
属性可用于三件事:
1.动态组件:这个is
属性设置在内置<component>
元素来创建动态组件,其中is
属性定义哪个组件应该是活动组件。
更详细地说,is
属性绑定到属性v-bind
,该属性保存应该是活动组件的名称。 (参见上面的例子)
2. 用 Vue 组件替换原生元素:is="vue:my-component"
放置在原生 HTML 元素上以将其替换为 Vue 组件。 (参见示例1)
如果我们不使用vue:
前缀,它将被解释为自定义的内置元素,如下文所述,并且不会插入 Vue 组件。
3. 定制内置元素:可以用 JavaScript 编写自定义的内置元素,并且is
属性可以用在 HTML 标签上,将其定义为自定义的内置元素。这不是 Vue 的功能。
使用is
属性来替换<img>
带有 Vue 组件的标签。
App.vue
:
<template>
<h2>Example Built-in 'is' Attribute</h2>
<p>The IMG tag below is set to be replaced by a component by the use of 'is="vue:child-comp"'.</p>
<img is="vue:child-comp" />
</template>
ChildComp.vue
:
<template>
<div>
<h3>ChildComp.vue</h3>
<p>This is the child component</p>
</div>
</template>
<style scoped>
div {
border: solid black 1px;
background-color: lightgreen;
padding: 10px;
max-width: 250px;
margin-top: 20px;
}
</style>
运行示例 »
Vue教程:动态组件
Vue教程:Vue 组件
Vue教程:Vue 计算属性
Vue教程:Vue v-bind 指令
Vue参考:Vue v-bind 指令
Vue参考:Vue <组件> 元素
Vue参考:Vue $refs 对象
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!