当前文章收录状态:
未收录
1、全部引入
安装element-plus依赖
npm install <a href="https://www.zym88.cn/tag/element" title="更多关于 element 的文章" target="_blank">element</a>-plus --savenpm install <a href="https://www.zym88.cn/tag/element" title="更多关于 element 的文章" target="_blank">element</a>-plus --savenpm install element-plus --save
在nuxt3项目中plugins下新建一个element-plus.client.ts文件(注意:默认必须在 plugins
下新建配置文件,这是“约定”,详情见 官网)关于为什么要加 .client
感兴趣请看:《前端渲染CSR和SSR的结合使用分析》)
在element-plus.ts文件中输入
import ElementPlus from 'element-plus'import { ID_INJECTION_KEY } from 'element-plus';export default defineNuxtPlugin(nuxtApp => {<a href="https://www.zym88.cn/tag/nuxt" title="更多关于 nuxt 的文章" target="_blank">nuxt</a>App.vueApp.use(ElementPlus)nuxtApp.vueApp.provide(ID_INJECTION_KEY, {prefix: Math.floor(Math.random() * 10000),current: 0,})})import ElementPlus from 'element-plus' import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { <a href="https://www.zym88.cn/tag/nuxt" title="更多关于 nuxt 的文章" target="_blank">nuxt</a>App.vueApp.use(ElementPlus) nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })import ElementPlus from 'element-plus' import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.use(ElementPlus) nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })
然后在nuxt.config.ts文件中引入UI样式
export default defineNuxtConfig({...css: ['element-plus/dist/index.css'],...})export default defineNuxtConfig({ ... css: ['element-plus/dist/index.css'], ... })export default defineNuxtConfig({ ... css: ['element-plus/dist/index.css'], ... })
就可以在页面中引入element-plus组件了
2、按需引入
手动导入的话有两种方法:1、unplugin-vue-components 2、unplugin-element-plus
2.1、unplugin-vue-components
nuxt3目前不支持自动按需引入,需要在页面中import,不然报错
安装依赖
npm install element-plus --savenpm install unplugin-vue-components -Dnpm install element-plus --save npm install unplugin-vue-components -Dnpm install element-plus --save npm install unplugin-vue-components -D
在nuxt.config.ts文件中引入
import Components from "unplugin-vue-components/vite";import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineNuxtConfig({css: ['element-plus/dist/index.css'],vite: {plugins: [Components({dts: true,resolvers: [ElementPlusResolver()]})],}})import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineNuxtConfig({ css: ['element-plus/dist/index.css'], vite: { plugins: [ Components({ dts: true, resolvers: [ElementPlusResolver()] }) ], } })import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineNuxtConfig({ css: ['element-plus/dist/index.css'], vite: { plugins: [ Components({ dts: true, resolvers: [ElementPlusResolver()] }) ], } })
在plugins下新建一个element-plus.ts文件(在SSR下elementui需要配置一个provide)
import { ID_INJECTION_KEY } from 'element-plus';export default defineNuxtPlugin(nuxtApp => {nuxtApp.vueApp.provide(ID_INJECTION_KEY, {prefix: Math.floor(Math.random() * 10000),current: 0,})})import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })
在页面上引入使用
<script setup lang='ts'>import {ElButton} from "element-plus";</script><template><div><el-button>Default</el-button></div></template><script setup lang='ts'> import { ElButton } from "element-plus"; </script> <template> <div> <el-button>Default</el-button> </div> </template><script setup lang='ts'> import { ElButton } from "element-plus"; </script> <template> <div> <el-button>Default</el-button> </div> </template>
2.2、unplugin-element-plus
来自element-plus团队的示例:https://github.com/element-plus/element-plus-nuxt-starter
安装依赖
npm install element-plus --savenpm install unplugin-element-plus -Dnpm install element-plus --save npm install unplugin-element-plus -Dnpm install element-plus --save npm install unplugin-element-plus -D
在nuxt.config.ts文件中引入
import ElementPlus from 'unplugin-element-plus/vite'export default defineNuxtConfig({css: ['element-plus/dist/index.css'],build: {transpile: ['element-plus/es'],},vite: {plugins: [ElementPlus()],}})import ElementPlus from 'unplugin-element-plus/vite' export default defineNuxtConfig({ css: ['element-plus/dist/index.css'], build: { transpile: ['element-plus/es'], }, vite: { plugins: [ ElementPlus() ], } })import ElementPlus from 'unplugin-element-plus/vite' export default defineNuxtConfig({ css: ['element-plus/dist/index.css'], build: { transpile: ['element-plus/es'], }, vite: { plugins: [ ElementPlus() ], } })
在plugins下新建一个element-plus.ts文件(在SSR下elementui需要配置一个provide)
import { ID_INJECTION_KEY } from 'element-plus';export default defineNuxtPlugin(nuxtApp => {nuxtApp.vueApp.provide(ID_INJECTION_KEY, {prefix: Math.floor(Math.random() * 10000),current: 0,})})import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })import { ID_INJECTION_KEY } from 'element-plus'; export default defineNuxtPlugin(nuxtApp => { nuxtApp.vueApp.provide(ID_INJECTION_KEY, { prefix: Math.floor(Math.random() * 10000), current: 0, }) })
在页面上引入使用
<script setup lang='ts'>import {ElButton} from "element-plus";</script><template><div><el-button>Default</el-button></div></template><script setup lang='ts'> import { ElButton } from "element-plus"; </script> <template> <div> <el-button>Default</el-button> </div> </template><script setup lang='ts'> import { ElButton } from "element-plus"; </script> <template> <div> <el-button>Default</el-button> </div> </template>
© 版权声明
1
本站网络名称:
明恒博客
2
本站永久网址:
www.zym88.cn
3 本站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容