使用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.hqwc.cn/news/614804.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺序表(增删减改)+通讯录项目(数据结构)

什么是顺序表 顺序表和数组的区别 顺序表本质就是数组 结构体初阶进阶 系统化的学习-CSDN博客 简单解释一下&#xff0c;就像大家去吃饭&#xff0c;然后左边是苍蝇馆子&#xff0c;右边是修饰过的苍蝇馆子&#xff0c;但是那个好看的苍蝇馆子一看&#xff0c;这不行啊&a…

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录 前言一、SquareLine Studio是什么&#xff1f;二、下载安装三、工程配置四、交叉编译 前言 遇到的问题&#xff1a;#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studios settings&#xff0c;解决方法见# 四、交叉编译 一、SquareLine Studio是什么…

GEE数据集——巴基斯坦国家级土壤侵蚀数据集(2005 年和 2015 年)

简介 巴基斯坦国家级土壤侵蚀数据集&#xff08;2005 年和 2015 年&#xff09; 该数据集采用修订的通用土壤流失方程 (RUSLE)&#xff0c;并考虑了六个关键影响因素&#xff1a;降雨侵蚀率 (R)、土壤可侵蚀性 (K)、坡长 (L)、坡陡 (S)、覆盖管理 (C) 和保护措施 (P)&#xff…

秋叶Stable diffusion的创世工具安装-带安装包链接

来自B站up秋葉aaaki&#xff0c;近期发布了Stable Diffusion整合包v4.7版本&#xff0c;一键在本地部署Stable Diffusion&#xff01;&#xff01; 适用于零基础想要使用AI绘画的小伙伴~本整合包支持SDXL&#xff0c;预装多种必须模型。无需安装git、python、cuda等任何内容&am…

面经:Presto/Trino高性能SQL查询引擎解析

作为一名专注于大数据技术的博主&#xff0c;我深知Presto&#xff08;现更名为Trino&#xff09;作为一款高性能SQL查询引擎&#xff0c;在现代数据栈中的重要地位。本文将结合我个人的面试经历&#xff0c;深入剖析Trino的核心特性和应用场景&#xff0c;分享面试必备知识点&…

2023年MathorCup数学建模D题航空安全风险分析和飞行技术评估问题解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 D题 航空安全风险分析和飞行技术评估问题 原题再现 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展&#xff0c;针对飞行安全问题的研究显得越来越重要。2022 年 3 月 21 日&#xff0c;“3.21”空难的发生…

面经:HDFS分布式文件系统原理与故障排查

作为一名专注于大数据存储与处理技术的博主&#xff0c;我深知Hadoop Distributed File System&#xff08;HDFS&#xff09;作为一款广泛应用的分布式文件系统&#xff0c;在大数据生态系统中的基石地位。本篇博客将结合我个人的面试经历&#xff0c;深入剖析HDFS的底层原理、…

JWT重放漏洞如何攻防?你的系统安全吗?

大家好&#xff0c;我是石头~ 在数字化浪潮席卷全球的今天&#xff0c;JSON Web Token&#xff08;JWT&#xff09;作为身份验证的利器&#xff0c;已成为众多Web应用的首选方案。 然而&#xff0c;正如硬币有两面&#xff0c;JWT的强大功能背后也隐藏着潜在的安全风险&#xf…

性能分析-数据库(安装、索引、sql、执行过程)与磁盘知识(读、写、同时读写、内存速度测试)

数据库 数据库&#xff0c;其实是数据库管理系统dbms。 数据库管理系统&#xff0c; 常见&#xff1a; 关系型数据库&#xff1a; mysql、pg、 库的表&#xff0c;表与表之间有关联关系&#xff1b; 表二维表统一标准的SQL&#xff08;不局限于CRUD&#xff09;非关系型数据…

杂货铺 | Linux虚拟机Ubuntu操作系统下设置共享文件夹(以及找不到hgfs文件夹怎么办)

文章目录 &#x1f4da;步骤一&#xff1a;配置共享文件夹&#x1f4da;步骤二&#xff1a;配置挂载环境&#x1f4da;步骤三&#xff1a;解决权限问题&#x1f4da;步骤四&#xff1a;解决重启失效问题 &#x1f4da;步骤一&#xff1a;配置共享文件夹 建立本地共享文件夹&…

【GD32】MQ-8氢气检测传感器

2.36 MQ-8氢气检测传感器 MQ-8气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(Sn0s)。当传感器所处环境中存在氢气时&#xff0c;传感器的电导率随空气中氢气浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-8气体…

YOLOv8绝缘子边缘破损检测系统(可以从图片、视频和摄像头三种方式检测)

可检测图片和视频当中出现的绝缘子和绝缘子边缘是否出现破损&#xff0c;以及自动开启摄像头&#xff0c;进行绝缘子检测。基于最新的YOLO-v8训练的绝缘子检测模型和完整的python代码以及绝缘子的训练数据&#xff0c;下载后即可运行。&#xff08;效果视频&#xff1a;YOLOv8绝…