当前第2页 返回上一页
如果仅在模板中指定了Test 1
元素,这正是您将获得的响应。 为了使组件具有动态性,我们可以使用v-bind
指令将其绑定到set属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <template>
<div id= "app" >
<img alt= "Vue logo" src= "./assets/logo.png" >
<component v-bind:is= "component" />
</div>
</template>
<script>
import Test from './components/Test.vue'
import Test2 from './components/Test2.vue'
export default {
name: 'app' ,
components: {
Test, Test2
},
data (){
return {
component: "Test"
}
}
}
</script>
|
您的组件现在与数据中的组件属性绑定。如果您将组件切换到Test2
,它将自动挂载Test2
组件。
在浏览器上测试一下。
添加方法调用
您可以添加方法调用来控制组件动态显示的逻辑。组件元素允许您访问Vue实例中的每个构造。
下面是一个切换这两个组件的小方法的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <template>
<div id= "app" >
<img alt= "Vue logo" src= "./assets/logo.png" >
<component v-bind:is= "component" />
<button v-on:click= "toggle" >Toggle</button>
</div>
</template>
<script>
import Test from './components/Test.vue'
import Test2 from './components/Test2.vue'
export default {
name: 'app' ,
components: {
Test,
Test2
},
data (){
return {
component: "Test2"
}
},
methods: {
toggle(){
if ( this .component === Test) {
this .component = Test2;
} else {
this .component = Test;
}
}
}
}
</script>
|
切换时保持数据值有效
在Vue团队构建这个特性时,他们选择扩展它的功能,包括存储每个状态的数据值。
为了存储这些数据,Vue提供了一个名为keep-alive
的模板元素。使用keep-alive
,您可以确保在从一个组件切换回另一个组件后,您的组件状态保持原样。
例如,如果您单击某个链接或在文本框中输入一个值,然后切换组件,那么keep-alive
会将您带回到切换回来时使用的相同链接或文本框。
要启用keep-alive
,请转到app.vue
文件的模板部分,并使用keep-alive
元素包装组件元素:
1 2 3 | <keep-alive>
<component v-bind:is= "component" />
</keep-alive>
|
要查看它是否工作,请将表单元素添加到测试中。vue文件,在模板部分添加如下代码块:
1 2 3 4 5 6 7 8 9 10 | <template>
<div><h1>I am Test 1</h1>
<form>
First name:<br>
<input type= "text" name= "firstname" ><br>
Last name:<br>
<input type= "text" name= "lastname" >
</form>
</div>
</template>
|
保存所有项目文件后,再次运行应用程序。在输入框中键入,切换组件,并切换回原始组件。您将注意到在切换组件之前输入的值与之前输入的值完全相同。
结论
本文介绍了如何在Vue.js工作流中使用动态组件。您现在还可以通过keep-alive扩展组件元素的能力。
相关推荐:
2020年前端vue面试题大汇总(附答案)
vue教程推荐:2020最新的5个vue.js视频教程精选
更多编程相关知识,请访问:编程入门!!
以上就是Vue.js中使用动态组件的方法的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
vue-mobile是什么
vue.js如何安装jq
vue中如何集成css框架?方法介绍
vue.js如何给对象属性赋值呢
vue.js能做pc端吗
vue中怎么对事件进行防抖和节流操作?
vue.js怎样刷新改变数据
react创建组件的三种方式分别是什么
关于vue使用验证器: veevalidate3
vue.js计算属性是什么?(代码示例)
更多相关阅读请进入《vue.js》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » Vue.js中使用动态组件的方法