一、起步
1. 创建nuxt3项目:npm create nuxt <项目名称>
二、安装用到的依赖
1. element-plus:
npm install -D @element-plus/nuxt
npm install element-plus
npm install @element-plus/icons-vue
npm install -D unplugin-vue-components unplugin-auto-import
2. pinia:
npm install @pinia/nuxt
npm install pinia
npm install pinia-plugin-persistedstate
3. tailwindcss:
npm install -D @nuxtjs/tailwindcss
4. animate.css
npm install animate.css
三、在nuxt.config.ts处配置
其中配置element-plus的icon只需要在配置里写上
elementPlus: {
icon: 'ElIcon',
importStyle: 'scss'
}
然后页面使用时,仅需要在普通项目使用方法的<el-icon> <Right /></el-icon>的基础上加上ElIcon,即:
<el-icon><ElIconRight /></el-icon>,
不需要像网上大多数文章那样重新注册(可能有像我这样配置的文章,不过我没有找到,我因为不相信element的导入会这么麻烦,然后根据element-plus官网找到了示例项目https://github.com/element-plus/element-plus-nuxt-starter,参照了里面的配置方法)
具体代码:
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineNuxtConfig({
ssr: true,
devServer: {
host: 'localhost, 0.0.0.0', // 这样配置,控制台就能像vite那样同时输出localhost地址和本机ip地址
port: 3000,
},
// 配置elementPlus的icon
elementPlus: {
icon: 'ElIcon',
importStyle: 'scss',
themes: ['dark'],
},
vite: {
plugins: [
// 配置elementPlus按需自动导入
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
server: {
open: true,
proxy: {
'/api': {
target: `https://xx.xx`,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
},
app: {
// 配置html的head标签的内容
head: {
htmlAttrs: {
lang: 'en',
},
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width,initial-scale=1.0' },
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
],
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
},
},
// 全局引入css
css: [
'animate.css/animate.min.css', // 使用方法:animate__animated [具体动画类]
'~/assets/css/main.scss',
],
// 配置modules
modules: [
'@nuxt/content',
'@nuxt/eslint',
'@nuxt/image',
'@nuxt/scripts',
'@nuxt/test-utils',
'@element-plus/nuxt',
'@pinia/nuxt',
'pinia-plugin-persistedstate/nuxt',
'@nuxtjs/tailwindcss',
],
})
四、路由
nuxt项目的pages文件夹下面就是一个一个路由。
比如pages->about->index.vue,此时网页地址路径就是:/about
动态路由:pages->about->[id].vue,网页地址路径:/about/1或/about/22这类
附vscode保存时自动格式化文件的方式:
1. 打开命令面板(Ctrl+Shift+P)
2. 输入Preferences: Open Settings (JSON),按需要选择工作区或者默认设置等选项
3. 在该json文件里输入 "editor.formatOnSave": true 即可
参考:
2. https://github.com/element-plus/element-plus-nuxt-starter