Nuxt3+Vue3(Composition API)+TS+Vite+Ant Design Vue 搭建

最近官网搭建选择了nuxtjs,由于框架更新了,其中语法也有很多变化,中间遇到了一些问题点做下总结。

nuxt3官方文档地址:https://nuxt.com/docs/getting-started/installation

安装

在安装Nuxt3之前,你需要保证你的node.js大于16.10.0 或者最新版本,我是用得最新版本18

创建一个nuxt项目

npx nuxi init <project-name>

切换到刚创建的项目根目录

cd <project-name>

下载相关依赖

npm install

Nuxt3 的目录结构

  • assets/: 存放静态资源文件,如样式、图片、字体等。
  • components/: 存放组件文件,可以在页面中引用。
  • layouts/: 存放布局文件,可以在页面中引用。
  • middleware/: 存放中间件文件,可以在路由中使用。
  • composables/: 存放可重用的逻辑代码,可以在页面、组件和插件中使用。
  • pages/: 存放页面文件,每个文件对应一个路由。
  • plugins/: 存放插件文件,可以在应用程序中使用。
  • static/: 存放静态文件,如 robots.txt、favicon.ico 等。
  • store/: 存放 Vuex store 文件。
  • server/: 存放服务器端代码,包括中间件、API、插件等等。
  • utils/: 存放工具函数文件。
  • nuxt.config.ts: Nuxt3 的配置文件,使用 TypeScript 编写。
  • package.json: 项目的依赖和脚本配置文件。
  • tsconfig.json: TypeScript 的配置文件。

引入Ant Design Vue

我使用得是最新版本 4.1.2

https://next.antdv.com/components/overview

安装

npm install ant-design-vue@4.x --save

plugins文件夹下创建ant-design-vue.ts文件

// import { Button,Layout } from'ant-design-vue';//局部功能使用
import Antd from 'ant-design-vue'; //全局使用 
export default defineNuxtPlugin((nuxtApp) => {
   
    nuxtApp.vueApp.use(Antd);  //全局使用 
    // nuxtApp.vueApp.use(Button).use(Layout)//局部功能使用
});

这样就可以
在这里插入图片描述

pinia + pinia-plugin-persistedstate 实现数据持久化存储

pinia: https://pinia.vuejs.org/zh/ssr/nuxt.html
pinia-plugin-persistedstate: https://prazdevs.github.io/pinia-plugin-persistedstate/zh/frameworks/nuxt-3.html

在nuxt.config.ts配置
export default defineNuxtConfig({
  modules: ['@pinia/nuxt', '@pinia-plugin-persistedstate/nuxt'],
}) 
创建在根目录下创建stores/user.ts
import {
    defineStore } from "pinia"; // 引入pinia
//  stores/user
export const useUserStateStore = defineStore("main", {
   
  state: () => {
   
    return {
   
      token: "",
      isAngelUser: '',
      isVIPUser: '',
      userInfo: ''
    };
  },
  persist: process.client && {
    // 仅在客户端使用
    storage: localStorage, // localStorage 本地存储,可替换sessionStorage
  },
});
在页面中设置和使用
import {
    useUserStateStore } from "~/store/user";

export default defineComponent({
   
  name: 'echartsEdit',
  components: {
   
    StarOutlined,
    StarFilled,
    StarTwoTone,
    MessageOutlined
  },
  setup() {
   
    const store = useUserStateStore(); //定义store
    store.token = '123'; // 设置
    return {
   
      
    }
  },
})

使用

const store = useUserStateStore(); 
var a = store.token;

相关推荐

  1. vue3项目企业级

    2024-02-17 12:14:03       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-17 12:14:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-17 12:14:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-17 12:14:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-17 12:14:03       18 阅读

热门阅读

  1. .mjs 和 .js 文件扩展名之间的区别

    2024-02-17 12:14:03       35 阅读
  2. QML:Instantiator 动态创建对象的元素

    2024-02-17 12:14:03       28 阅读
  3. 分层钱包HD钱包

    2024-02-17 12:14:03       23 阅读
  4. OpenSIPS3.4 cachedb_sql模块测试

    2024-02-17 12:14:03       33 阅读
  5. python-自动化篇-办公-Excel-Openpyxl库

    2024-02-17 12:14:03       27 阅读
  6. reDOS攻击

    2024-02-17 12:14:03       36 阅读
  7. VS-Code-C#配置

    2024-02-17 12:14:03       34 阅读
  8. 洛谷问题买礼物和Building Roads S题解

    2024-02-17 12:14:03       27 阅读
  9. 【大数据面试题】007 谈一谈 Flink 背压

    2024-02-17 12:14:03       27 阅读
  10. 【C语言】(25)文件包含include

    2024-02-17 12:14:03       28 阅读
  11. 有了NULL,为什么C++还需要nullptr?

    2024-02-17 12:14:03       28 阅读
  12. C# 异步方法的使用场景

    2024-02-17 12:14:03       29 阅读