vite tsx项目的element plus集成 - 按需引入踩坑

前面我们进行了开源组件的自研,很多组件可直接用现成的开源组件库,并不需要自己重复造轮子,为此我们讲如何在当前vite + vitepress + tsx技术整合的项目中实现element plus组件的按需引入,同时解决遇到的一些坑。

安装Element Plus

npm i -S element-plus

插件安装

npm install -D unplugin-vue-components unplugin-auto-import

vite配置

在这里插入图片描述

用到了vitepress来展示组件文档,要在文档的vue页面中使用element组件同样需要配置:

docs/.vitepress/config.ts

在这里插入图片描述

jsx文件中遇到的坑

jsx中使用element plus的按需引入方式遇到了一些坑,因为小卷习惯用tsx文件来写组件,发现要按需引入element plus,在tsx文件只存在如下问题:

  1. 直接使用<el-xxx>标签无法解析和识别,必须要手动引入下:

    import { ElButton } from 'element-plus'
    
  2. 手动引入后,element组件可以被解析渲染,但是样式却不生效,无法被引入

经过实验,发现.tsx文件可以用.vue文件来替换,语法完全保持不变:

在这里插入图片描述

写法如下:

<script lang="tsx">
import { defineComponent, ... } from 'vue'
export default defineComponent({
  name: 'XxxComponent',
  setup(...) { ... }
})
</script>

也就是我们只要把原来.tsx文件内容全部原封不动的拷贝到对应.vue文件的<script lang='tsx'></script>标签体中即可。

然后我们就放心的直接使用element提供的组件即可,不需要做任何的导入,直接使用,比如对分页内容的渲染,我们直接使用element提供的<el-button>组件:

在这里插入图片描述

在这里插入图片描述

要在 Vite 中搭建组件库并实现按引入,可以按照以下步骤进行: 1. 创建一个 Vue 3 项目并安装 Vite 2. 在项目中安装所的 UI 组件库,如 Element Plus、Ant Design Vue3. 在项目根目录下创建一个名为 `vite.config.js` 的文件,并在其中配置按引入的插件,如 `style-import` 插件和 `babel-plugin-import` 插件 4. 在组件库中使用 `export` 关键字将组件导出,在要使用组件的项目中使用 `import` 关键字按引入组件 以下是一个示例的 `vite.config.js` 配置文件: ```js import { defineConfig } from &#39;vite&#39; import vue from &#39;@vitejs/plugin-vue&#39; import styleImport from &#39;vite-plugin-style-import&#39; import babel from &#39;@rollup/plugin-babel&#39; export default defineConfig({ plugins: [ vue(), babel({ exclude: &#39;node_modules/**&#39;, extensions: [&#39;.js&#39;, &#39;.jsx&#39;, &#39;.ts&#39;, &#39;.tsx&#39;], }), styleImport({ libs: [ { libraryName: &#39;ant-design-vue&#39;, esModule: true, resolveStyle: (name) => { return `ant-design-vue/es/${name}/style/css` }, }, { libraryName: &#39;element-plus&#39;, esModule: true, resolveStyle: (name) => { return `element-plus/lib/theme-chalk/${name}.css` }, }, ], }), ], }) ``` 在上述配置中,我们使用了 `style-import` 插件和 `babel-plugin-import` 插件来实现按引入。其中,`style-import` 插件用于按引入组件库的样式,`babel-plugin-import` 插件用于按引入组件库的组件。 最后,我们在组件库中使用 `export` 关键字将组件导出,如下所示: ```vue <template> <div>{{ message }}</div> </template> <script> export default { name: &#39;MyComponent&#39;, props: { message: { type: String, required: true, }, }, } </script> ``` 在要使用组件的项目中,我们可以使用 `import` 关键字按引入组件,如下所示: ```vue <template> <div> <MyComponent message="Hello, world!" /> </div> </template> <script> import MyComponent from &#39;@/components/MyComponent.vue&#39; export default { name: &#39;App&#39;, components: { MyComponent, }, } </script> ``` 这样就可以实现在 Vite 中搭建组件库并实现按引入了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值