当前位置: 首页 > news >正文

使用vite从头搭建一个vue3项目(二)创建目录文件夹以及添加vue-router

目录

  • 一、创建 vue3 项目 vite-vue3-project-js
  • 二、创建项目目录
  • 三、创建Home、About组件以及 vue-router 配置路由
  • 四、修改完成后页面

一、创建 vue3 项目 vite-vue3-project-js

使用 vite 创建一个极简 vue3 项目请参考此文章:使用Vite创建一个vue3项目

下面是我在创建vue3项目时,没有切换 node 版本导致的node版本兼容性警告。 vite3 需要 node 必须是 =18 || >=20 版本才行。

在这里插入图片描述

分享一个 node 版本管理器 nvm(点击进入下载页面 github),可以很方便的切换 node 版本,大家可以安装一个试试。
如果使用 nvm 安装 node 失败的话可以参考这篇文章解决问题:使用nvm安装nodejs时,npm安装失败,提示 handshake timeout 。

下载 nvm 时,选择 nvm-setup.exe 安装程序安装。
在这里插入图片描述

二、创建项目目录

根据目录文件,在新建的 vite-vue3-project-js 项目的 src 目录文件夹下创建目录文件:

├── src
│   ├── api            		数据请求
│   ├── assets         		静态资源
│		├── images    	 	图片
│		├── style      		样式
│   ├── components     		公共组件
│   ├── layout         		布局(自定义菜单与内容布局)
│   ├── pages          		页面组件
│		├── Home       		
│		├── About      		
│   ├── router         		路由配置
│   ├── stores          	数据状态管理
│   └── utils          		工具函数
│		├── request.js 		axios封装

三、创建Home、About组件以及 vue-router 配置路由

  1. 安装 vue-router。

    npm install vue-router@next
    
  2. 使用 createRouter 创建 router 路由,在 router 文件夹中新建 index.js,书写如下代码:

    import { createRouter, createWebHistory } from "vue-router";
    import Home from "../pages/Home/index.vue"
    const routes = [{path: '/',name: 'home',component: Home,},{path: '/about',name: 'about',component: () => import('../pages/About/index.vue')}
    ]
    const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes,
    })
    export default router;
    
  3. 创建Home、About组件。

    <!-- src/Home/index.vue -->
    <template><div><h3>This is Home page</h3><HelloWorld msg="Vite + Vue" /></div>
    </template><script setup>
    import HelloWorld from '../../components/HelloWorld.vue'
    </script><style lang="scss" scoped></style>
    
    <!-- src/About/index.vue -->
    <template><div><h3>This is About page!</h3></div>
    </template><script setup></script><style lang="scss" scoped></style>
    
  4. 修改App.vue文件。

    <template><h1>Hello App!</h1><div><a href="https://vitejs.dev" target="_blank"><img src="/vite.svg" class="logo" alt="Vite logo" /></a><a href="https://vuejs.org/" target="_blank"><img src="./assets/vue.svg" class="logo vue" alt="Vue logo" /></a></div><p><!-- 使用 router-link 组件进行导航 --><!-- 通过传递 `to` 来指定链接 --><!-- `<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签 --><nav><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></nav></p><hr><!-- 路由出口 --><!-- 路由匹配到的组件将渲染在这里 --><router-view></router-view>
    </template>
    

    <style scoped></style>中添加 nav、router-link 的样式

    nav {width: 100%;text-align: center;margin-top: 2rem;
    }
    nav a.router-link-exact-active {color: var(--color-text);
    }
    nav a.router-link-exact-active:hover {background-color: transparent;
    }
    nav a {display: inline-block;padding: 0 1rem;border-left: 1px solid var(--color-border);
    }
    nav a:first-of-type {border: 0;
    }
    
  5. 将 style.css 中的样式注释。

    body {margin: 0;/* display: flex;place-items: center; */min-width: 320px;min-height: 100vh;
    }
    
  6. 修改 main.js 文件,挂载 router 路由。

    import { createApp } from 'vue'
    import './style.css'
    import App from './App.vue'
    import router from "./router/index.js"const app = createApp(App)
    app.use(router)// 挂载永远是最后一步
    app.mount('#app')
    

四、修改完成后页面

在这里插入图片描述

http://www.lryc.cn/news/337617.html

相关文章:

  • 循环控制语句的实际应用(3)
  • 突破像素限制,尽显照片细腻之美——Topaz Gigapixel AI for Mac/Win
  • CSS特效---HTML+CSS实现3D旋转卡片
  • Rust跨平台编译
  • php其他反序列化知识学习
  • 浏览器工作原理与实践--HTTP/1:HTTP性能优化
  • idea 使用springboot helper 创建springboot项目
  • 关于 Amazon DynamoDB 的学习和使用
  • 【fastapi】搭建第一个fastapi后端项目
  • Qt/QML编程之路:图片进度条的实现(50)
  • OOCT WPF_D3D项目报错无法加载依赖项
  • 模板方法模式:定义算法骨架的设计策略
  • es6对于变量的解构赋值(数组解构,对象解构,字符串解构,函数解构等)解析(2024-04-12)
  • Flutter学习13 - Widget
  • Django开发一个学生选课系统
  • Vue3项目搭建及文件结构
  • 【机器学习】Logistic与Softmax回归详解
  • MATLAB Simulink仿真搭建及代码生成技术—01自定义新建模型模板
  • 【Java8新特性】二、函数式接口
  • 供应RTC5606H 芯片现货
  • 洛谷-P1596 [USACO10OCT] Lake Counting S
  • 基于双向长短期神经网络BILSTM的发生概率预测,基于GRU神经网络的发生概率预
  • 对OceanBase中的配置项与系统变量,合法性检查实践
  • YOLOv8绝缘子边缘破损检测系统(可以从图片、视频和摄像头三种方式检测)
  • 【vim 学习系列文章 18 -- 选中行前后增加两行】
  • 分布式系统接口限流方案
  • Flutter仿Boss-6.底部tab切换
  • 深入理解机器学习:用Python构建您的第一个预测模型
  • redisson与redis集群检测心跳机制原理
  • 部署Redis