广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Vue中怎么全局注册组件并引用
  • 435
分享到

Vue中怎么全局注册组件并引用

2024-04-02 19:04:59 435人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Vue中怎么全局注册组件并引用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、正则判断路径以及文件名,获取全部组件并全局注册(

这篇文章将为大家详细讲解有关Vue中怎么全局注册组件并引用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、正则判断路径以及文件名,获取全部组件并全局注册(可以直接在main.js里写,但是为了规范以及后期可维护性,我们新建个单独的的js文件写入)

(1)main.js引入所有自定义封装的组件

import Vue from 'vue';
import echarts from 'echarts';
import App from './App.vue';
import router from './router';
import store from './store';
import './plugins/element';
// 引入时间戳序列化
import './plugins/dateFORMat';
// 引入公共样式
import Public from './assets/CSS/public.css';
// 引入所有自定义封装的组件
import './components/CommonCommponts/GlobalComponents';
import startup from './startup';
 
// 使用公共样式
Vue.use(Public);
 
Vue.config.productionTip = false;
Vue.prototype.$echarts = echarts;
 
function vue() {
 new Vue({
 router,
 store,
 render: h => h(App)
 }).$mount('#app');
}
startup(vue, router);

(2)全局组件的GlobalComponents.js

这里需要安装2个插件upperFirst和camelCase

下面是组件相对于这个文件的路径,因为我的封装组件和这个js文件在同一级,所以直接 . 就可以了。

然后是是否查询子目录,即这个路径下你又新建了文件夹,把各个组件区分开,那么就会嵌套很多层,查询子目录可以方便的使我们找到它们。

然后是正则表达式,因为我的所有组件名都是Rdapp开头的,这里看大家的文件命名,不需要的话删除前面的Rdapp即可。

然后下面的部分就可以不用动了。

import Vue from 'vue';
import upperFirst from 'lodash/upperFirst';
import camelCase from 'lodash/camelCase';
 
const requireComponent = require.context(
 // 其组件目录的相对路径
 '.',
 // 是否查询其子目录
 true,
 // 匹配基础组件文件名的正则表达式
 /Rdapp[A-Z]\w+\.(vue|js)$/,
);
 
requireComponent.keys().forEach((fileName) => {
 // 获取组件配置
 const componentConfig = requireComponent(fileName);
 
 // 获取组件的 PascalCase 命名
 const componentName = upperFirst(
 camelCase(
  // 获取和目录深度无关的文件名
  fileName
  .split('/')
  .pop()
  .replace(/\.\w+$/, ''),
 ),
 );
 
 // 全局注册组件
 Vue.component(
 componentName,
 // 如果这个组件选项是通过 `export default` 导出的,
 // 那么就会优先使用 `.default`,
 // 否则回退到使用模块的根。
 componentConfig.default || componentConfig,
 );
});

2、组件封装以及命名

这里新建了一个文件夹,其中js文件是上面的配置文件,用于全局注册并引用的,然后下面是封装的组件,请使用驼峰命名法。

Vue中怎么全局注册组件并引用

3、组件引入

组件引入使用 - 语法,以每个驼峰为标记,例如AccBdd的命名,引入就是<acc-bdd></acc-bdd>即可

<template>
 <div class="ER-left-box">
 <rdapp-animation-group animationType="leftToRight">
  <!-- 标题一 -->
  <rdapp-animation-item speed="fast">
  <rdapp-title
   :textStyle="leftData.LeftTitle1"
   class="header-title"
  ></rdapp-title>
  </rdapp-animation-item>
  <!-- 火灾警告 -->
  <rdapp-animation-item speed="slow">
  <rdapp-early-warning :textStyle="HandleEventInfo"></rdapp-early-warning>
  </rdapp-animation-item>
  <!-- 标题二 -->
  <rdapp-animation-item speed="fast">
  <rdapp-title
   :textStyle="leftData.LeftTitle2"
   class="header-title"
  ></rdapp-title>
  </rdapp-animation-item>
  <!-- 描述 -->
  <rdapp-animation-item speed="normal">
  <rdapp-describe
   :textStyle="{ description: HandleEventInfo.description }"
  ></rdapp-describe>
  </rdapp-animation-item>
  <!-- 视频 -->
  <rdapp-animation-item speed="slow">
  <rdapp-video ref="video" :cameraNum="0"></rdapp-video>
  </rdapp-animation-item>
 </rdapp-animation-group>
 </div>
</template>

这样我们就完成了组件的封装以及所有组件的全局注册和使用,便于我们的开发以及后期可维护性。

这里附带一个组件的封装写法:

这里封装的是一个标题的组件,为了方便用户传参,使用了对象作为参数,通过计算属性以及Object.assign方法,可以更方便的合并用户传递的参数,即如果用户只在对象中传入了text属性,那么其他属性就会使用默认值,这样无疑提高了组件的丰富性。

<template>
 <div class="BgTitle-box" :>
 {{getStyle.text}}
 </div>
</template>
 
<script>
export default {
 name: 'RdappBgTitle',
 props: {
 textStyle: Object,
 },
 computed: {
 getStyle() {
  return Object.assign({
  text: '基本信息',
  width: '300px',
  height: '54px',
  lineHeight: '54px',
  textAlign: 'center',
  fontSize: '16px',
  fontColor: '#fff',
  }, this.textStyle);
 },
 },
};
</script>
 
<style scoped>
 .BgTitle-box{
 background: url("../../static/img/PreliminaryJudge/assess.png") no-repeat center center;
 }
</style>

关于Vue中怎么全局注册组件并引用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Vue中怎么全局注册组件并引用

本文链接: https://www.lsjlt.com/news/72460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue中怎么全局注册组件并引用
    这篇文章将为大家详细讲解有关Vue中怎么全局注册组件并引用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、正则判断路径以及文件名,获取全部组件并全局注册(...
    99+
    2022-10-19
  • VUE中怎么注册全局组件和局部组件
    这篇文章将为大家详细讲解有关VUE中怎么注册全局组件和局部组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局组件第一步:在components文件夹下建...
    99+
    2022-10-19
  • vue如何实现全局组件注册
    这篇文章主要为大家展示了“vue如何实现全局组件注册”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现全局组件注册”这篇文章吧。全局组件注册1 一般情...
    99+
    2022-10-19
  • 如何使用use注册Vue全局组件和全局指令
    这篇文章主要介绍如何使用use注册Vue全局组件和全局指令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue中的组件和指令分为局部组件、局部指令和全局组件、全局指令。对于注册有一定...
    99+
    2022-10-19
  • vue实现全局组件自动注册,无需再单独引用
    目录vue全局组件自动注册自动化注册全局组件脚本vue全局组件自动注册 1、在components目录下创建一个global目录,里面放置一些需要全局注册的组件。 index.js作...
    99+
    2022-11-13
  • Vue中怎么封装一个自动化注册全局组件
    这篇文章主要介绍“Vue中怎么封装一个自动化注册全局组件”,在日常操作中,相信很多人在Vue中怎么封装一个自动化注册全局组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中怎么封装一个自动化注册全局组件...
    99+
    2023-06-25
  • Vue3中注册全局的组件,并在TS中添加全局组件提示方式
    目录Vue3中注册全局的组件Vue3踩坑--全局注册组件我的框架:vue3+vite+ts+naiveUIVue3中注册全局的组件 1. 在src/components中新建inde...
    99+
    2022-11-13
  • vue中怎么注册组件
    vue中怎么注册组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、全局注册(这种方式注册组件必须在vue实例化之前声明)Vue.compo...
    99+
    2022-10-19
  • Vue自动化注册全局组件脚本分享
    目录自动化注册全局组件放代码vue组件注册–全局注册使用require.context实现前端工程自动化(实现全局组件自动化注册的js脚本)基本思路使用场景自动化注册全局...
    99+
    2022-11-13
  • vue3全局组件自动注册功能怎么实现
    本篇内容主要讲解“vue3全局组件自动注册功能怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3全局组件自动注册功能怎么实现”吧!vue3全局组件自动注册建文件需要在src/comp...
    99+
    2023-07-06
  • Vue全局注册中的kebab-case和PascalCase怎么使用
    这篇文章主要介绍“Vue全局注册中的kebab-case和PascalCase怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue全局注册中的kebab-case和PascalCase怎么使...
    99+
    2023-07-05
  • vue中怎么自定义全局组件
    这期内容当中小编将会给大家带来有关vue中怎么自定义全局组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Vue.use( plugin ):安装 Vue.js 插件。如...
    99+
    2022-10-19
  • Vue中怎么建立全局引用
    这篇文章将为大家详细讲解有关Vue中怎么建立全局引用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 一般在vue中,有很多vue组件,这些组件每个都是一个...
    99+
    2022-10-19
  • vue 为什么要封装全局组件引入
    目录1.为什么要封装全局组件引入2. 封装全局组件的 js3. 在 main.js 中4. 我们要引入这些公共组件就可以直接用啦1.为什么要封装全局组件引入 为何要封装一个封装全局组...
    99+
    2022-11-13
  • 怎么用Vue封装全局toast组件
    本篇内容介绍了“怎么用Vue封装全局toast组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 借助...
    99+
    2022-10-19
  • 怎么在vue组件中使用全局变量
    在vue组件中使用全局变量的方法:1.新建vue.js项目;2.使用export方法定义全局变量;3.使用Vue.prototype方法挂载全局变量;4.使用this调用全局变量;具体步骤如下:首先,在vue-cli中创建一个vue.js项...
    99+
    2022-10-16
  • Vue中如何使用全局组件和局部组件
    Vue中如何使用全局组件和局部组件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。组件 (Component) 是 Vue.js...
    99+
    2022-10-19
  • 在Vue2中注册全局组件的两种方法详解
    第一种:在main.js中直接注册 //引入 import FixedTop from '@/components/FixedTop //注册为全局组件 Vue.componet('...
    99+
    2022-11-13
  • vue全局注册自定义指令防抖怎么实现
    本文小编为大家详细介绍“vue全局注册自定义指令防抖怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue全局注册自定义指令防抖怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。全局注册自定义指令防抖...
    99+
    2023-06-30
  • vue如何批量引入组件、注册和使用详解
    前言 组件是我们非常常用的东西,很多人使用组件都是通过一个一个文件去引用和注册。这篇文章就来介绍下vue批量引入组件、注册和使用的方法。 一、使用场景 在日常开发中,经常会有这样一...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作