vue引入组件的几种方法代码示例

 更新时间:2024年04月01日 10:32:57   作者:郑建零零发  
vue的一个强大功能就是组件化开发,下面这篇文章主要给大家介绍了关于vue引入组件的几种方法,文中给出了详细的代码及图文介绍,需要的朋友可以参考下

一、常用的局部引入

<template>
    <div>
        <!--3.使用组件-->
        <Button></Button>
    </div>
</template>

<script>
 // 1. 引入组件
import Button from '../view/button.vue'
export default {
    // 2. 注册组件
    components: {
        Button,
    }
}
</script>

总结: 在哪个页面需要就在那个页面引入、注册、使用

二、创建一个js 进行统一注册   然后在main.js引入统一管理的js文件实现全局注册

1、global.js统一注册管理:

// 1.引入vue
import Vue from 'vue'
import  Child1 from './child1'
import  Child2 from './child1'
import  Child3 from './child1'
import  Child4 from './child1'
import  Child5 from './child1'

Vue.component(Child1)
Vue.component(Child2)
Vue.component(Child3)
Vue.component(Child4)
Vue.component(Child5)

2、在main.js中引入 global.js实现全局注册

优点: 减少每个页面引入的繁琐步骤 、减少了每一页面重复引入的代码,

缺点: 有90%的代码都是重复的

三、自动注册全局引入

注释版:

// 引入vue
import Vue from 'vue'
// 将字符串首字母大写  返回当前字符串
function changeStr(str) {
    return str.charAt(0).toUpperCase() + str.slice(1)
}
// require.context: 是动态引入文件
// 参数一: 当前路径(引入.vue文件的当前路径)
// 参数二:是否匹配当前文件下的子文件
// 参数三:查找文件格式以.vue结尾的文件
const requireComponent = require.context('./', false, /\.vue$/)
console.log("批量注册组件", requireComponent.keys())  // ['./head-l.vue', './head-r.vue', './head.vue']
requireComponent.keys().forEach(fileName => {
	// 当前组件
    const config = requireComponent(fileName)
	console.log("组件的信息config", config)
	//获取组件名
	const componentName = changeStr(fileName.replace(/^\.\//, '').replace(/\.\w+$/))  // 第一个replace(/^\.\//, '')去掉前面的./   第二个replace(/\.W+$/)是去掉后面的.vue
	console.log("组件名", componentName)  // 例如:Head-rundefined
	// 参数一: 组件名
	// 参数二: config:是一整个组件的内容;  config.default:是组件中export.default里面的内容  
	Vue.component(componentName, config.default || config)
	
})

 纯净版:

import Vue from 'vue'
function changeStr(str) {
    return str.charAt(0).toUpperCase() + str.slice(1)
}
const requireComponent = require.context('./', false, /\.vue$/)
requireComponent.keys().forEach(fileName => {
    const config = requireComponent(fileName)
	const componentName = changeStr(fileName.replace(/^\.\//, '').replace(/\.\w+$/))  
	Vue.component(componentName, config.default || config)
	
})

 结构: 

附:vue 中 import引入相同的方法名称解决方法

import { list } from '@/api/aaaa/apiJs'
import { list} from '@/api/bbb/apiJs'

当引入了2个不同的文件,方法名称list都是一样的,就会出现报错。

如果之前文件用的地方比较多,直接改名称的话,可能会漏掉,会引起不必要的麻烦,那如何解决呢

解决方法:

import { list } from '@/api/aaaa/apiJs'
import { list as _list} from '@/api/bbb/apiJs'

就是使用 import as

as后面的名字就是你要替换的名称,是不是很简单就解决了

总结 

到此这篇关于vue引入组件的几种方法的文章就介绍到这了,更多相关vue引入组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue引用public文件夹中文件的多种方式

    vue引用public文件夹中文件的多种方式

    由于一些演示需要对一些简单页面进行配置,由于打包build后的vue项目基本已经看不出原样,因此需要创建一个文件,并在打包的时候不会进行编译,所以文件放在public,这篇文章主要给大家介绍了关于vue引用public文件夹中文件的多种方式,需要的朋友可以参考下
    2024-02-02
  • vue前端框架vueuse的useScroll函数使用源码分析

    vue前端框架vueuse的useScroll函数使用源码分析

    这篇文章主要为大家介绍了vueuse的useScroll函数源码分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • el-select如何获取当前选中的对象所有(item)数据

    el-select如何获取当前选中的对象所有(item)数据

    在开发业务场景中我们通常遇到一些奇怪的需求,下面这篇文章主要给大家介绍了关于el-select如何获取当前选中的对象所有(item)数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Vue3使用vant检索组件van-search遇到的问题小结

    Vue3使用vant检索组件van-search遇到的问题小结

    当清空按钮与检索按钮同时居右时,点击clear清空按钮事件时会同时触发click-right-icon事件,这个时候容易触发一系列问题,小编小编给大家分享Vue3使用vant检索组件van-search遇到的问题小结,感兴趣的朋友一起看看吧
    2024-02-02
  • Vue.js每天必学之内部响应式原理探究

    Vue.js每天必学之内部响应式原理探究

    Vue.js每天必学之内部响应式原理探究,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 在IDEA中安装vue插件全过程

    在IDEA中安装vue插件全过程

    这篇文章主要介绍了在IDEA中安装vue插件全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)

    Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)

    这篇文章主要介绍了Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • vue中改变了vuex数据视图不更新,也监听不到的原因及解决

    vue中改变了vuex数据视图不更新,也监听不到的原因及解决

    这篇文章主要介绍了vue中改变了vuex数据视图不更新,也监听不到的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 手写vue无限滚动指令的详细过程

    手写vue无限滚动指令的详细过程

    今天在移动端项目中遇见一个需求,需要数据无限滚动,所以下面这篇文章主要给大家介绍了关于手写vue无限滚动指令的详细过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 在Vue中实现深度监听的示例代码

    在Vue中实现深度监听的示例代码

    在 Vue 中,深度监听是指监听一个对象或数组的嵌套属性(深层结构)的变化,而不仅仅是监听顶层属性的引用变化,本文给大家介绍了如何在Vue中实现深度监听,并通过代码示例介绍的非常详细,需要的朋友可以参考下
    2025-03-03

最新评论