Vue3+Vite+TypeScript项目开发

技术栈

  • vue3.0+
  • vue-router4.0+
  • vuex4.0+、vuex-persistedstate
  • vite2.0+
  • typescript
  • element-plus
  • axios

App的routerView

  <div class="main">
    <router-view v-slot="{ Component }">
      <component :is="Component" />
    </router-view>
  </div>

vue-router应用

import { createRouter, createWebHashHistory } from 'vue-router'
import routes from './entry'

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router

vuex应用

import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'

let timer: any = null

export default createStore({
  state: {
    listData: {
      a: 10
    },
    num: 10
  },
  getters: {
    doubleCount: state => state.num * 2
  },
  mutations: {
    setData(state, value) {
      state.listData = value
    },
    addNum(state) {
      state.num = state.num + Math.random()
    }
  },
  actions: {
    setData(context) {
      context.commit('setData')
    },
    addNum(context) {
      timer && clearTimeout(timer)
      timer = setTimeout(() => {
        console.log('模拟延时')
        context.commit('addNum')
      }, 1500)
    },
  },
  modules: {},
  // 数据状态持久化 vuex-persistedstate
  plugins: [createPersistedState({
    key: 'VUEXCACHE',
    storage: window.sessionStorage,
    reducer(val)  {
      return {
        // 只储存state中的num
        num: val.num
      }
    }
  })]
})

main.ts

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'
import './assets/less/app.less'
import 'dayjs/locale/zh-cn'
import locale from 'element-plus/lib/locale/lang/zh-cn'
import pageTitle from './components/pageTitle.vue'

const app = createApp(App)

window.$version = {
  vue: app.version,
  ele: ElementPlus.version
}

app.component('pageTitle', pageTitle)

app.use(router)
  .use(store)
  .use(ElementPlus, { locale })
  .mount('#app')

项目地址

要创建一个Vue3 + Vite + TypeScript项目,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Node.js和npm。 2. 打开终端或命令提示符,并进入你想要创建项目的目录。 3. 执行以下命令来创建一个新的Vue项目: ``` npm init vite@latest ``` 这将使用Vite脚手架工具来创建一个新的项目。 4. 在创建项目的过程中,你将被要求选择一个模板。选择"vue-ts"模板,这将创建一个Vue3 + TypeScript项目。 5. 完成项目创建后,进入项目目录: ``` cd your-project-name ``` 6. 安装项目所需的依赖: ``` npm install ``` 这将安装VueViteTypeScript和其他必要的依赖。 7. 启动开发服务器: ``` npm run dev ``` 这将启动一个本地开发服务器,并在浏览器中打开你的应用程序。 现在,你已经成功创建了一个Vue3 + Vite + TypeScript项目。你可以根据需要进行二次开发,并在App.vue文件中编写根组件。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Vue3 + Vite2 + TypeScript4搭建企业级项目框架](https://blog.csdn.net/qq_39024950/article/details/131110151)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue3+Vite+TypeScript常用项目模块详解](https://blog.csdn.net/qq_43649937/article/details/131105171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值