vue2.0和vue3.0获取当前文件夹下的所有vue文件区别

vue2.0

  1. 在Vue 2.0项目中,要获取当前文件夹下的所有.vue文件,你可以使用Node.js的文件系统模块(fs)和路径模块(path)来实现。以下是一个简单的示例,演示如何列出特定文件夹下的所有.vue文件:
    const path = require('path');
    const files = require.context('./', false, /\.vue$/);
    console.log(path, files, 'filesfiles');
    const modules = {};
    files.keys().forEach((key) => {
      const name = path.basename(key, '.vue');
      modules[name] = files(key).default || files(key);
    });
    export default modules;
    
    在这里插入图片描述
  2. 组件在其他地方中的应用
    // 加入element为获取的组件
    let element = {
    	beforeCreate: Array(1),
    	beforeDestroy: Array(1),
    	cname: "导航组",
    	computed: Object,
    	configName: "c_home_menu",
    	data: ƒ data(),
    	defaultName: "menus",
    	icon: "icondaohangzu1",
    	methods: Object,
    	mounted: ƒ mounted(),
    	name: "home_menu",
    	num: 1718182717610000,
    	props: Object,
    	render: ƒ render(),
    	staticRenderFns: Array(0),
    	type: 0,
    	watch: Object,
    	__file: "src/components/mobilePageDiy/home_menu.vue",
    	_compiled: true,
    	_scopeId: "data-v-ff5d6a5a",
    }
    // 获取data中定义的变量
    console.log(element.data().defaultConfig) 
    // 获取methods中的方法,并执行
    console.log(data.element.methods)
    

获取methods中的方法,打印出组件中的方法

vue3.0

  1. 在Vue 3中,你可以使用Vite作为构建工具来获取当前文件夹下的所有.vue文件。以下是一个简单的示例,展示如何使用import.meta.glob函数来实现这一点:
    import.meta.globEager 是 Vue3 中新增加的一个 API,用于在编译时期即加载所有的模块。相比较于 import 和 require,import.meta.globEager 是一种更加高效的加载方式。
    使用import.meta.globEager批量导入文件,第一次进入很慢(created断点都需要几秒才能进入)
    解决方法:使用import.meta.glob+defineAsyncComponent异步批量导入(秒进created的断点)
    // 在Vue组件中使用import.meta.glob
    <script setup>
    import { defineAsyncComponent } from 'vue';
    // 使用import.meta.glob来匹配当前目录下所有的.vue文件
    const vueFiles = import.meta.glob('./*.vue');
    // 如果你想获取文件列表,而不是模块对象,可以使用下面的代码
    // const vueFilePaths = Object.keys(vueFiles);
    const components = import.meta.globEager('./components/*.vue');
    console.log(modules, components);
    const obj = {};
    Object.keys(modules).forEach((key: string) => {
      const viewSrc = components[key];
      const file = viewSrc.default;
      const name = file.name;
      obj[name] = defineAsyncComponent(file);
    });
    export default obj;
    </script>
    
    在这里插入图片描述
    2. 在组件中的运用
    let element = {
    	components: {CBgColor: {}, CCascader: {}, CFoot: {}, CGoods: {}, CHotWord: {},},
    	componentsName: "auxiliary_box",
    	name: "CAuxiliaryBox",
    	props: {activeIndex: {}, num: {}, index: {}},
    	render: ƒ _sfc_render(_ctx, _cache, $props, $setup, $data, $options),
    	setup: setup(props) { const store = mobildConfigModalStore(); let configObj = ref({}); let rCom = ref([]); onMounted(() => {},
    	__file: "D:/weibao/wb-saas-web/src/views/ecommerce/system/homeDecoration/mobileConfigDiyStyle/c_auxiliary_box.vue",
    	__hmrId: "78eea2c2",
    }
    // 调用组件中setUp方法中return出来的数据
    const useXxx = data.element.setup;
    // 若使用了props需要进行传参
    const dataP = useXxx({ num: towD.num });
    properties = dataP.defaultConfig.value;
    

当前文件夹下的所有vue文件区别

在Vue 2.x和Vue 3.x中获取当前文件夹下所有.vue文件的差异通常不是由Vue框架本身直接支持的,而是由构建工具(如Webpack或Vite)处理的

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3.0是Vue.js框架的最新版本,与Vue 2.0相比有一些重要的改进和变化。要将Vue 2.0项目迁移到Vue 3.0,需要进行以下步骤: 1. 更新依赖项:首先,需要将项目中的Vue.js依赖项更新为最新的3.0版本。这包括Vue核心库以及其他可能使用的Vue插件或扩展。 2. 代码适配:Vue 3.0引入了一些新的语法和API,与Vue 2.0有一些不兼容的变化。因此,需要对项目中的代码进行适配。例如,Vue 3.0使用了新的Composition API,可以取代2.0版本中的Options API,需要对组件进行适配以使用新的API。另外,一些特性,如slot和transition,也有一些变化,需要根据Vue 3.0的文档进行修改。 3. 构建工具更新:Vue 3.0对应的构建工具也有所改变。如果你的项目使用了Vue CLI或其他构建工具,需要将它们更新为最新的版本以支持Vue 3.0。 4. 运行测试:完成代码适配后,需要进行测试以确保项目在Vue 3.0下能够正常运行。可以使用Vue官方提供的测试工具或其他适用的测试框架进行测试。 5. 性能优化:Vue 3.0在性能方面进行了一些改进,因此可以考虑对项目进行性能优化。这包括使用新的编译优化、按需引入和缓存等。 总之,迁移到Vue 3.0需要更新依赖项、适配代码、更新构建工具、进行测试和性能优化等步骤。通过认真阅读Vue 3.0的文档和指南,并根据项目的具体情况进行相应的修改和调整,可以顺利完成迁移过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值