Vue2.0开发之——动态组件-component标签的基础用法(54)
一 概述
- 什么是动态组件
- 创建默认项目
- 如何实现动态组件渲染
- 可能出现的错误
- 动态切换组件的显示与隐藏
二 什么是动态组件
动态组件指的是动态切换组件的显示与隐藏
三 创建默认项目
3.1 默认项目图示(只有根组件)
3.2 导入注册Left,Right组件
导入Left,Right组件
1 | import Left from '@/components/Left.vue' |
注册Left,Right组件
1 | export default { |
使用Left,Right组件
1 | <template> |
导入组件后的默认效果图
四 如何实现动态组件渲染
4.1 动态组件概念
vue提供了一个内置的<component>组件,专门用来实现动态组件的渲染。过程如下:
- 当前要渲染的组件名称
- 通过
is
属性,动态指定要渲染的组件 - 点击按钮,动态切换组件的名称
实例代码
4.2 动态组件渲染过程—固定写死
component组件通过is指定要渲染的组件
1 | <component is="Left"></component> |
Left组件渲染效果图
4.3 动态组件渲染过程——动态绑定
动态绑定组件名称comName声明
1 | export default { |
使用comName为组件赋值
1 | <component :is="comName"></component> |
五 可能出现的错误
5.1 make sure to provide the "name" option
错误信息
1 | vue.runtime.esm.js?2b0e:619 [Vue warn]: Unknown custom element: <component> - did you register the component correctly? For recursive components, make sure to provide the "name" option. |
原因—只使用component时
1 | <component></component> |
5.2 '<component>' elements to have 'v-bind:is' attribute."
错误信息
1 | [vue/require-component-is] |
消极方案 - 屏蔽提示
1 | 文件->首选项->设置,输入 vetur.validation.template,去掉 "Validate vue-html in <template> using eslint plugin-vue" 的勾选,然后重启 VSCODE |
5.3 Unchecked runtime.lastError
错误信息
1 | Unchecked runtime.lastError: The message port closed before a response was received. |
解决方案:
迅雷插件的问题,将迅雷插件关闭
六 动态切换组件的显示与隐藏
6.1 添加切换按钮
1 | <button @click="comName='Left'">展示Left</button> |