Vue组件使用
发布日期:2021-07-01 06:00:57
浏览次数:2
分类:技术文章
本文共 2111 字,大约阅读时间需要 7 分钟。
Vue组件使用
注册方式
全局注册
注册之后可以用在任何新创建的 Vue 根实例 (new Vue) 的模板中。
/*javascript*/Vue.component('component-a', { /* ... */ })Vue.component('component-b', { /* ... */ })Vue.component('component-c', { /* ... */ })new Vue({ el: '#app' })
//html
局部注册
局部注册的组件在其子组件中不可用。
/*javascript*/var ComponentA = { /* ... */ }var ComponentB = { /* ... */ }var ComponentC = { /* ... */ }
//htmlnew Vue({ el: '#app', components: { 'component-a': ComponentA, 'component-b': ComponentB }})
/*javascript*/var ComponentA = { /* ... */ }var ComponentB = { components: { 'component-a': ComponentA }, // ...}
模块注册
/*javascript*/import ComponentA from './ComponentA'import ComponentC from './ComponentC'export default { components: { ComponentA, ComponentC }, // ...}
现在 ComponentA 和 ComponentC 都可以在 ComponentB 的模板中使用了。
基础组件的自动化全局注册
可能你的许多组件只是包裹了一个输入框或按钮之类的元素,是相对通用的。我们有时候会把它们称为基础组件,它们会在各个组件中被频繁的用到。
所以会导致很多组件里都会有一个包含基础组件的长列表:
import BaseButton from './BaseButton.vue'import BaseIcon from './BaseIcon.vue'import BaseInput from './BaseInput.vue'export default { components: { BaseButton, BaseIcon, BaseInput }}
而只是用于模板中的一小部分:
幸好如果你使用了 webpack (或在内部使用了 webpack 的 Vue CLI 3+),那么就可以使用 require.context 只全局注册这些非常通用的基础组件。这里有一份可以让你在应用入口文件 (比如 src/main.js) 中全局导入基础组件的示例代码:
import Vue from 'vue'import upperFirst from 'lodash/upperFirst'import camelCase from 'lodash/camelCase'const requireComponent = require.context( // 其组件目录的相对路径 './components', // 是否查询其子目录 false, // 匹配基础组件文件名的正则表达式 /Base[A-Z]\w+\.(vue|js)$/)requireComponent.keys().forEach(fileName => { // 获取组件配置 const componentConfig = requireComponent(fileName) // 获取组件的 PascalCase 命名 const componentName = upperFirst( camelCase( // 剥去文件名开头的 `./` 和结尾的扩展名 fileName.replace(/^\.\/(.*)\.\w+$/, '$1') ) ) // 全局注册组件 Vue.component( componentName, // 如果这个组件选项是通过 `export default` 导出的, // 那么就会优先使用 `.default`, // 否则回退到使用模块的根。 componentConfig.default || componentConfig )})
记住全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生。这里有一个真实项目情景下的示例。
转载地址:https://pandora.blog.csdn.net/article/details/88094167 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年05月06日 02时39分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JAVA中 XML与数据库互转 学习笔记三
2019-05-08
JAVA与DOM解析器基础 学习笔记
2019-05-08
JAVA 利用Dom4j实现英语六级词汇查询 含演示地址
2019-05-08
到网上收集了一个“高大上”的CSS3登入表单和大家分享一下
2019-05-08
CSS3无前缀脚本prefixfree.js与Animatable使用介绍
2019-05-08
自制“低奢内”CSS3登入表单,包含JS验证,请别嫌弃哦。
2019-05-08
自制“低奢内”CSS3注册表单,包含JS验证哦。请别嫌弃,好吗?。
2019-05-08
Wookmark-jQuery-master 瀑布流插件使用介绍,含个人测试DEMO
2019-05-08
Flex4/Flash开发在线音乐播放器 , 含演示地址
2019-05-08
利用:before和:after伪类制作CSS3 圆形按钮 含demo
2019-05-08
超漂亮的CSS3按钮制作教程分享
2019-05-08
Struts2+AJAX+JQuery 实现用户登入与注册功能。
2019-05-08
纯CSS3手风琴图片滑动特效
2019-05-08
JAVA多线程Thread VS Runnable详解
2019-05-08
Android Studio 初探
2019-05-08
原 java 获取xml中的元素(多重)
2019-05-08
无意义
2019-05-08
sip协议
2019-05-08
快捷键
2019-05-08