vue3项目简化Compositions API使用-省去频繁的import和各use函数调用

当我们开发vue3项目,经常会使用proxy,router,store等等,避免代码的冗余,整理成一个共用文件,引入使用即可。
自行创建文件名为:compositions,里面放名为common.js的文件如下

import { computed, getCurrentInstance, ref, onBeforeUnmount } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { useStore } from 'vuex';

// 常用于setup中获取proxy,router,store等,省去频繁的import和各use函数调用
export function useCommon() {
  const $this = getCurrentInstance();
  const store = useStore();
  const router = useRouter();
  const route = useRoute();
  return {
    $this,
    proxy: $this.proxy,
    router,
    route,
    store,
  };
}

使用方式:

<script setup>
  import { useCommon } from '@/compositions/common.js';
  const { proxy, router, route, store } = useCommon();
  ......
</script>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Monorepo 架构下,我们通常会将 Vue 项目拆分成多个子项目,每个子项目都是一个独立的 Vue 应用。而 `unplugin-vue-components` 和 `unplugin-auto-import` 这两个插件都是用于在 Vue 应用中自动导入组件或者插件,可以为我们节省很多手动导入的时间和精力。 对于 `unplugin-vue-components` 插件,我们可以将其安装在 Monorepo 的根目录下,然后在每个子项目的 `vue.config.js` 文件中配置插件的选项,如下所示: ```js // monorepo/vue-app/vue.config.js const { VueComponentsPlugin } = require('unplugin-vue-components') module.exports = { configureWebpack: { plugins: [ VueComponentsPlugin({ /* options */ }) ] } } ``` 对于 `unplugin-auto-import` 插件,我们可以在根目录下创建一个 `plugins.js` 文件,在该文件中配置插件的选项,如下所示: ```js // monorepo/plugins.js const { AutoImportPlugin } = require('unplugin-auto-import') module.exports = [ AutoImportPlugin({ /* options */ }) ] ``` 然后在每个子项目的 `vue.config.js` 文件中引入该配置文件,并将其作为 `chainWebpack` 钩子函数的参数,如下所示: ```js // monorepo/vue-app/vue.config.js const plugins = require('../../plugins') module.exports = { chainWebpack: config => { plugins.forEach(plugin => plugin(config)) } } ``` 这样一来,我们就可以在 Monorepo 架构下方便地使用 `unplugin-vue-components` 和 `unplugin-auto-import` 这两个插件了。当然,具体的配置选项还需要根据项目实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值