当前位置:   article > 正文

从零搭建vue3+vite+ts项目_vue+ts从0

vue+ts从0

1. 初始化项目

npm init vite@latest
  1. Need to install the following packages:
  2. create-vite@latest
  3. Ok to proceed? (y) y
  4. √ Project name: ... my-vue3
  5. Select a framework: » vue
  6. Select a variant: » vue-ts
  7. Scaffolding project in D:\Learning\todos-list...
  8. Done. Now run:
  9. cd my-vue3
  10. npm install
  11. npm run dev

2.. 配置路由

npm i vue-router

src/route/index.ts(没有的直接创建对应文件夹和文件即可)

  1. import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
  2. // 2. 配置路由
  3. const routes: Array<RouteRecordRaw> = [
  4. {
  5. path: "/home", // 路由路径
  6. component: () => import("@/pages/home.vue"), // 对应组件
  7. },
  8. ];
  9. // 1.返回一个 router 实列,为函数,里面有配置项(对象) history
  10. const router = createRouter({
  11. history: createWebHistory(),
  12. routes,
  13. });
  14. // 3导出路由 然后去 main.ts 注册 router.ts
  15. export default router;

src/main.ts

  1. import { createApp } from "vue";
  2. import App from "./App.vue";
  3. // 路由
  4. import router from "@/router";
  5. const app = createApp(App);
  6. app.use(router).mount("#app");

ps:  引入的地方用@报错的同学 是因为别名没有配置(下图...为其他配置项)

  1. {
  2. "compilerOptions": {
  3. ...
  4. "paths": {
  5. "@/*": ["src/*"],
  6. },
  7. ...
  8. }
  9. }

3. 配置store

2.0 版本使用的市Vuex,3.0官网推荐使用pinia

npm i pinia

src/store/index.ts(同上面路由)

  1. import { createPinia, defineStore } from "pinia";
  2. const store = createPinia();
  3. export const useStore = defineStore("storeId", {
  4. state: () => {
  5. return {},
  6. },
  7. actions: {},
  8. getters: {},
  9. });
  10. export { store };

可在state return出来的对象里自定义属性,Vuex中的mutation方法 在pinia中不再使用

src/main.ts

  1. import { createApp } from "vue";
  2. import App from "./App.vue";
  3. // 路由
  4. import router from "@/router";
  5. // store
  6. import { store } from "@/store";
  7. const app = createApp(App);
  8. app.use(router).use(store).mount("#app");

在对应页面或组件中使用store

  1. <template>
  2. <div></div>
  3. </template>
  4. <script lang="ts" setup>
  5. import { useStore } from "@/store";
  6. const store = useStore(); // 后面可直接使用store.变量名
  7. </script>
  8. <style></style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1000245
推荐阅读
相关标签
  

闽ICP备14008679号