vue基础教程(4)——深入理解vue项目各目录

博主个人微信小程序已经上线:【中二少年工具箱】。欢迎搜索试用


正文开始

  • 专栏简介
  • 1. 总览
  • 2. node_modules
  • 3.public
  • 4.src
  • 5.assets
  • 6.components
  • 7.router
  • 8.stores
  • 9.views
  • 10.App.vue
  • 11.main.js
  • 12.index.html


专栏简介

本系列文章由浅入深,从基础知识到实战开发,非常适合入门同学。

零基础读者也能成功由本系列文章入门,但如果您具备以下基础,将会事半功倍:

  1. HTML基础
  2. css基础
  3. js基础

当然,即使从未接触过前端代码的小白,也能轻松学习本系列课程,因为我会在文章中简略穿插前端基础知识。

由于各平台对专栏文章的支持度不同,所以如果您看到这篇文章的平台,系统学习专栏文章的操作不够丝滑,可以先关注小程序,后续小程序会开发专栏博客功能。

可以直接搜索【中二少年工具箱】,也可通过
二维码知乎地址:https://www.zhihu.com/question/53230344/answer/3180004527
二维码csdn地址:https://bbs.csdn.net/topics/618134623
二维码头条地址:https://www.toutiao.com/w/1790412984859652/
等入口进入,扫码关注。


1. 总览

下面是新创建项目的目录:
在这里插入图片描述
其中我们需要了解的有一下几个文件:

  1. node_modules
  2. public
  3. src
  4. assets
  5. components
  6. router
  7. stores
  8. views
  9. App.vue
  10. main.js
  11. index.html
  12. vite.config.js

下面我们一一介绍这些文件的作用。

2. node_modules

这个文件夹存放项目依赖,我们使用npm或者yarn下载的插件,以及插件所依赖的一些资源,都会下载到node_modules文件夹。这个我们不需要过多关注。

3.public

这个文件夹存放项目里的一些静态资源,包括图片/css文件/js文件等。后面我们还会讲到一个存放静态资源的文件夹,这两个文件夹的不同之处在于,public存放的资源,不会被编译。

也就是说,public中存放的资源是什么,最终打包vue后的项目根目录就会存在什么,而后面将要讲解的静态资源路径,则会被编译,被编译后,文件会被压缩,混淆等等,无法正常阅读和修改。

所以我们经常在public中存放一些公共资源,或者在打包后,仍然可能需要修改的文件。

4.src

src是项目的主要文件路径,里面存放着vue所有需要编译的文件。

我们需要简单理解前端的编译。我们了解,vue文件的后缀为.vue,但是浏览器其实并不认识何为.vue文件,它只认识.html文件。所以如果直接把.vue文件拖拽到浏览器中,是无法正常显示的。

想要把vue文件变成浏览器认识的html文件,就需要用到编译。编译的过程,简单而言,就是nodejs负责把src下面所有的vue文件,js文件,css文件,图片文件等,都读取并按照规则组合,变成一个巨大的html文件,最终浏览器运行的是这个html文件。

只有src下的文件才会参与上述的编译过程,其它文件并不会被编译。

也正是由于需要编译,vue的运行和打包,才需要nodejs环境。

5.assets

与上面的public对应,也是一个存放静态资源的文件夹。

不同的是,assets中存放的静态资源会被编译,而上面已经讲过,public中的静态资源不会被编译。

6.components

存放项目中的公共组件,公共组件往往是一些基础通用的组件,可以被复用到更多位置。

7.router

存放路由文件。路由的概念,简而言之,就是输入一个网址,找到对应的页面。我们输入的网址,即是路由地址。

由于网址的前面部分,是域名地址,所有页面都是一致的,只有后面的部分不同,所以在vue中,网址后半部分,即是路由地址。

初学者有个基础概念即可,入门阶段并不需要深入了解路由,很多时候我们只需要知道怎么写可以构建一个完整路由即可。先记结论,再学原理。

8.stores

存放vue状态管理的文件。vue有两个重要的基础插件,一是路由插件,二是状态管理插件。

路由插件上面已经说过,是控制页面跳转的。状态管理插件顾名思义,是管理状态的。这里的状态一般是全局状态,也就是说写在状态管理中的值,可以在项目src目录下,任何地方操作和使用,从而达到全局状态管理的目的。

实现全局状态管理的插件时pinia,而pinia如何应用,如何定义的js文件,则默认放在stores目录下。

9.views

这里存放和业务相关的前端页面,项目中大部分的.vue文件都是存放在views文件夹下。

10.App.vue

这是我们所有vue文件的入口文件。

vue有组件的概念,也就是所有的vue页面都是由一个个组件组合而成。项目中所有的vue组件,都是组合起来后,再放到App.vue中。这其中有很多细节,涉及到路由的概念,但是并不影响我们理解App.vue——所有vue文件的入口。

11.main.js

通过观察main.js中的代码可以发现,main.js主要有两个作用:一是引入各种插件,全局样式;二是将App.vue与index.html连接起来。

12.index.html

观察项目目录,可以发现,整个项目中只有一个html文件——index.html。

index.html中的关键代码如下:

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>

这个文件里的代码非常简洁,一个div元素,提供id为app的容器,用来盛放需要显示的前端代码。一个是script标签,用来引入main.js文件。

main.js文件里除了引入插件的代码,还有将App.vue与index.html连接起来的代码:

app.mount('#app')

将App.vue,main.js,index.html三个文件串联起来,就能把三者的关系梳理清楚。

index.html把main.js引入,把main.js中的功能引入页面。然后main.js中负责引入App.vue组件,并把App.vue中的所有内容挂载到id为app的容器中。最终App.vue是组件的入口,负责将所有的vue组件整合在一起。

三者脉络清晰后,就能把所有的vue组件编译后,都挂载到#app容器中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/437652.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源物联网平台】使用MQTT.fx模拟设备接入FastBee物联网平台

​&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;FastBee物联网开源项目 &#x1f4aa;&#x1f3fb; 专注于简单&#xff0c;易用&#xff0c;可拓展&#xff0c;低成本商业化的AIOT物联网解决方案 目录 一、接入步骤 1.1 创建产品&#xff…

HTTP Cookie 你了解多少?

Cookie是什么&#xff1f; 先给大家举个例子&#xff0c;F12 打开浏览器的页面之后&#xff0c;我们能在 Response Headers 的字段里面看到一个header 叫做 Set-Cookie&#xff0c;如下所示 图中包含的 Set-Cookie 为 Set-Cookie:uuid_tt_dd10_20293537580-1709432565344-232…

【C++】string类的基础操作

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 1. 基本概述 2. string类对象的常见构造 3. string类对象的容量操作 4. string类对象的访问及遍历操作 5. 迭代器 6.…

【智能家居入门1之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据&#xff0c;之后会持续发布如下项目&#xff1a;①可以实现微信小程序控制下位机动作&#xff0c;真正意义上的智能家居&#xff1b;②将网络通讯协议换成MQTT协议再实现上述功能&#xff0c;此时的服务器也不再是ONENET&…

IPSEC VPN 网关模式实验

要求&#xff1a;FW1与FW3建立IPSEC通道&#xff0c;保证10.0.2.0/24网段能访问192.168.1.0/24网段 因为FW1与FW3都处于边界&#xff0c;所以使用网关部署模式来建立IPSEC VPN FW1 这里选择主模式跟隧道模式 FW3与FW1配置类似&#xff0c;与FW1的源目地址反过来&#xff0c;…

-bash: unzip: 未找到命令的解决方案

遇到 -bash: unzip: 未找到命令 这样的错误信息&#xff0c;表示你的系统中没有安装 unzip 工具。unzip 是一个常用的解压工具&#xff0c;用于解压缩 .zip 文件。你可以通过系统的包管理器安装它。 根据你使用的 Linux 发行版&#xff0c;安装 unzip 的命令会有所不同。下面是…

图形系统开发实战课程:进阶篇(上)——10.应用实例:交通路网

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形样式”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-10.html 第十章 应用实例&#xff1a;交通路网 \quad 在前面几…

老师如何发布已点评的学生在校表现,并让家长留言反馈?

教师想要在线上发布已点评过的成绩单&#xff0c;同时想让家长在线留言反馈&#xff0c;还要做到只能查自己孩子的成绩&#xff0c;应该如何实现&#xff1f; 可以使用易查分制作一个学生在校表现查询系统&#xff0c;家长自主查询&#xff0c;有问题可留言向班主任反馈&#x…

什么是工业协议网关?作用是什么?

在工业自动化和智能制造领域&#xff0c;数据的采集、传输和处理是实现设备监控、远程控制和优化的关键。而工业协议网关&#xff0c;作为连接工业设备与上层管理系统的桥梁&#xff0c;发挥着至关重要的作用。今天&#xff0c;我们就来深入解析一下HiWoo Box这一工业协议网关的…

银行数字化转型导师坚鹏:银行数字化转型案例研究

银行数字化转型案例研究 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚银行科技金融数智化案例&#xff1f; 不清楚银行供应链金融数智化案例&#xff1f; 不清楚银行普惠金融数智化案例&#xff1f; 不清楚银行跨境金融数智…

ACM题解Day10|总结篇|进制转化,GCD ,LCM ,二分答案

&#x1f525;博客介绍&#xff1a; 27dCnc [Cstring中find_first_not_of()函数和find_last_not_of()函数-CSDN博客] 方差,期望 概率 今日打卡: 算法周总结 ACM题解Day3| To Crash or not To Crash,Integer Prefix ,I don’t want to pay for the Late Jar-CSDN博客 第3题:…

温室气体排放控制中的DNDC模型建模技术及双碳应用

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到&#xff0c;要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时&#xff0c;提到要把减污降碳协同增效作为促…

蓝牙 | 软件: Qualcomm BT Audio 问题分析(4)----检查MIPS使用情况

大家好&#xff01; 我是“声波电波还看今朝”成员的一位FAE Devin.wen&#xff0c;欢迎大家关注我们的账号。 今天给大家大概讲解“如何排查Qualcomm BT Audio”的疑难杂症&#xff08;四&#xff09;&#xff1a;MIPS检查。 如果大家还没有注册我们大大通的账号&#xff0c…

彻底理解Java并发:乐观锁、悲观锁和CAS

一、悲观锁与乐观锁 锁的一种宏观分类方式是悲观锁和乐观锁。悲观锁与乐观锁并不是特指某个锁&#xff08;Java 中没有哪个 Lock 实现类就叫 PessimisticLock 或 OptimisticLock&#xff09;&#xff0c;而是在并发情况下的两种不同策略。 1、乐观锁&#xff08;Optimistic L…

RK3568平台 USB数据包的收发格式

一.USB硬件拓扑结构 compound device &#xff1a;多个设备组合起来&#xff0c;通过HUB跟Host相连composite device &#xff1a;一个物理设备有多个逻辑设备(multiple interfaces) 在软件开发过程中&#xff0c;我们可以忽略Hub的存在&#xff0c;硬件拓扑图简化如下&#x…

git revert 撤回之前的几个指定的提交

文章目录 Intro操作命令-n 选项 参考 Intro 在开发过程中&#xff0c;有的时候一开始只是一个小需求&#xff0c;可以改着改着事情超出了控制&#xff0c;比如说我一开始只是想调整一个依赖包的版本&#xff0c;可是改到后来类库不兼容甚至导致项目无法启动。 这个时候我就想&…

(二十二)devops持续集成开发——jenkins服务代理Agent搭建

前言 在Jenkins 中&#xff0c;代理&#xff08;Agent&#xff09;是一种用于执行构建、部署和其他任务的计算节点。代理节点可以是物理机器、虚拟机或容器&#xff0c;它们负责接收 Jenkins 主控节点委派的任务并执行这些任务。通过使用代理节点&#xff0c;可以有效地分担Je…

基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

[数据结构初阶]队列

鼠鼠我呀&#xff0c;今天写一个基于C语言关于队列的博客&#xff0c;如果有兴趣的读者老爷可以抽空看看&#xff0c;很希望的到各位老爷观点和点评捏&#xff01; 在此今日&#xff0c;也祝各位小姐姐女生节快乐啊&#xff0c;愿笑容依旧灿烂如初阳&#xff0c;勇气与童真永不…

每日五道java面试题之springMVC篇(一)

目录&#xff1a; 第一题. 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f;第二题. Spring MVC的优点第三题. Spring MVC的主要组件&#xff1f;第四题. 什么是DispatcherServlet?第五题. 什么是Spring MVC框架的控制器&#xff1f; 第一题. 什么是S…