vite创建vue3+ts+ant design vue项目

1.通过vite命令构建vue3+ts项目

npm init @vitejs/app
or
yarn create @vitejs/app

根据步骤选择

  1. 项目名称
  2. 框架(vue,react…)
  3. js或ts
    在这里插入图片描述
    vite官网

2.安装ant design vue

安装2.x版本

 npm i --save ant-design-vue@next  

ant design vue 官网

按需加载

vite按需加载需要引入插件

npm i vite-plugin-style-import -S  

在vite.config.ts中配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    styleImport({
      libs: [{
        libraryName: 'ant-design-vue',
        esModule: true,
        resolveStyle: (name) => {
          return `ant-design-vue/es/${name}/style/css`;
        },
      }]
    })],
})

在App.vue文件中试用一下

<template>
  <Button>测试</Button>
</template>

<script setup>
// <script setup>实验性vue语法,简化了操作,
//其实 script setup 就相当于在编译运行是把代码放到了 setup 函数中运行
// 然后把导出的变量定义到上下文中,并包含在返回的对象中。
// 所以我这里可以直接使用了,如果在vue2.x中还要在compoents中注册一下
import { Button } from "ant-design-vue";
</script>

效果
在这里插入图片描述

3.安装Vuex

npm install vuex@next -S  

在src目录下创建store文件夹
在store文件夹下创建index.ts文件和modules文件夹
在这里插入图片描述
index.ts配置内容

import { createStore } from 'vuex'

// 获取modules文件夹下所有ts文件
const files: any = import.meta.globEager("./modules/*.ts")
let modules: any = {}
Object.keys(files).forEach((key) => {
  // 将获取到结果按照 key:value 的形式存放到modules对象中
  modules[key.replace(/(\.\/|\modules\/|\.ts)/g, '')] = files[key].default
})
console.log('模块',modules)
export default createStore({
  modules
})

modules/user.ts

export default {
  state: () => ({
    userInfo: 'sbafff'
  })
}

在main.ts中挂在

import { createApp } from 'vue'
import App from './App.vue'
import store from './store'
createApp(App).use(store).mount('#app')

在控制台中打印的结果
在这里插入图片描述

4.安装vue-router

先配置vite中对src的别名@,完成后就可以用@访问src下的内容
在vite.config.ts中配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'
import path from "path"
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    styleImport({
      libs: [{
        libraryName: 'ant-design-vue',
        esModule: true,
        resolveStyle: (name) => {
          return `ant-design-vue/es/${name}/style/css`;
        },
      }]
    })],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src")
    }
  }
})
// 上面可能会遇到
// __dirname 和 path 显示红色的波浪线需要安装插件
npm i @types/node -S   

安装vue-router

npm i vue-router@next -S   

在这里插入图片描述
router/index.ts

import { createRouter, createWebHistory } from "vue-router";
import Layout from '@/layouts/index.vue'
import Test from '@/views/index/test.vue'
import Index from '@/views/index/index.vue'
// 路由信息
const routes = [
  {
    path: "/",
    name: "Index",
    component: Index,
  },
  {
    path: "/test",
    name: "test",
    component: Test,
  },
];

// 导出路由
const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

在main.ts中挂在

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
createApp(App).use(router).use(store).mount('#app')

效果
在这里插入图片描述
在这里插入图片描述
待续。。。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值