前端-vue项目debugger调试

news2025/1/16 3:51:17

一、前言

有的时候接受同事一个项目,用框架不一样,写的也不太规范,那么就需要打断点去学习改项目的流程了。
那么vue项目是如何debugger调试呢?

二、操作

大概理解一下,vue项目启动,大概是先启动框架,然后把项目映射到内存或者框架中,所以打断点就算在代码中打断点,在初始化项目的时候也不会执行到断点,只有在刷新页面的时候才会执行项目流程,走到断点处;
可以在index.html中打断点,然后刷新页面,就可以看到vue项目执行流程了,如果代码写错了,就会npm run dev 失败,也就是项目加载不成功会具体报错到代码,项目启动成功,刷新页面可以根据打的断点查看执行流程,加载完项目,在内存映射中打断点,再刷新下页面,就可以看到写的vue执行流程了。
在这里插入图片描述

在这里插入图片描述

三、renren-ui项目模块划分与执行流程

3.1模块划分

在这里插入图片描述
在这里插入图片描述
1.node_modules:安装的依赖包
2.public:公共的静态资源
3.src:放的是核心的开发组件和文件
3.1.assets:放一些静态资源,例如图片、图标、字体、less文件
3.2.components:公共组件
3.3.constants:一些常量定义
3.4.hooks:钩子函数
3.5.layout:布局
3.6.router:路由相关配置
3.7.service:服务
3.8.store:vuex相关配置,存放\vue中的状态数据
3.9.types:类型
3.10.utils:工具类
3.11.views:路由对应的文件
3.12.App.vue:路由组件的顶层路由
3.13.main.ts:vue入口文件
4. .editorconfig:是帮助开发人员在不同的编辑器和IDE之间定义和维护一致的编码样式规范的工具
5. .env:Vue项目中,.env文件是运行项目时的环境配置文件。但是在实际开发过程中,有本地开发环境、测试环境、生产环境等,不同环境对应的配置会不一样。
因此,需要通过不同的.env文件实现差异化配置。
6. .gitignore:就是git软件要忽略的文件列表. 如果要忽略某些文件,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
8.babel.config.js:Babel是一个JS编译器,主要作用是将ECMAScript 2015+ 版本的代码,转换为向后兼容的JS语法,以便能够运行在当前和旧版本的浏览器或其它环境中。
9.ecp-vue.iml:iml是配置文件,存着当前project的一些配置信息。
10. index.html:主页面文件,也是入口文件
11. package.json:应用包配置文件
12. README.md: 应用描述说明的 readme 文件
13.vite.config.ts:vite.config.ts 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。

1.src目录

main. js是我们的入口文件,整个项目工程入口,用于全局配置,主要作用是初始化vue实例并使用需要的插件。

import { crearteApp } from 'vue';
import App from './App';
crearteApp(App).mount('#app'); //挂载方法,将vue的根实例挂载到id为'#app'的空间里去,从而实现数据双向绑定

2.App.vue

App. vue是我们的根组件(使用标签渲染整个工程的.vue组件) ,所有页面都是在App. vue下进行切换的。其实你也可以理解为所有的路由也是App. vue的子组件。所以我们将router 标示为App. vue的子组件。

3.assets文件

assets放可能会变动的文件
assets目录中的文件,会被合并到一个文件中,然后进行压缩。多用来存放业务级的js、css等,如一些全局的scss样式文件、全局的工具类js文件等。
拓展: assets目录中可以自己分化出不同地子目录,用来根据自己的需求存放文件。如assets/util/可以用来存放工具类js,assets/api/ 可以用来存放业务接口js等等。
assets目录中的文件会被webpack处理解析为模块依赖,只支持绝对路径形式。

4.components文件

components:目录里面放了一个组件文件,可以不用。通常建议将可重用的视图放置在src/ components目录中。诸如页眉, 页脚,广告,网格或任何自定义控件之类的示例,如样式化的文本框或按钮。可以在视图内部访问一个或多个组件。

5.views文件夹

vi ews文件夹用来存放“页面”。一个视图可以具有一个或多个组件,并且一个视图实际上打算由导航URL访问。它们通常放在src/views。

6.router文件(路由器及路由的配置)

在项目中使用vue-router管理路由,分为以下几步

第一步:在终端(terminal)中安装vue-router
npm install -g vue-router

第二步:在src目录下创建一-个router文件夹,在这个文件夹下创建router. js ( 也可以和main. js平级,直接创建router. js),在router. js文件中配置相应的信息

第三步:入口文件main. js中引入路由实例router,然后在根实例中注册
在这里插入图片描述

7.store文件夹

store文件夹:存放\vue中的状态数据,用vuex集中管理

8.public

该文件夹可以用来存放静态资源,存放在该文件夹的东西不会被打包影响,而是会原封不动的输出到dist文件夹中,和vuecli2中的static文件夹一样的。
pubilc/index.html是一个模板文件,index.html是一个总的入口文件,作用是生成项目的入口文件。
vue是单页面应用,挂在id为app的div下然后动态渲染路由模板,在index.html的body体中只有一个div标签, 其id为app,这个id将会连接到src/main. js内容,src中所有的编译打包后在publ ic下index.html中app里面,webpack打包的js, css也会自动注入到该页面中。我们浏览器访问项目的时候就会默认打开生成好的index.html

3.2、何时使用public 文件夹?

你需要在构建输出中指定-一个文件的名字。
你有上千个图片,需要动态引用它们的路径。
有些库可能和webpack不兼容,这时你除了将其用一个独立的script标签引入没有别的选择。

3.3、项目整体运行流程

先后顺序
index.html > App.vue的export外的js代码 > main.js > App.vue的export里面的js代码 >

1、按照上面的先后顺序打断点,刷新页面发现直接到index.html里面
在这里插入图片描述
2、继续执行debugger,发现到App.vue的export外的js代码
在这里插入图片描述
3、继续执行,到main.js代码
在这里插入图片描述

4、到App.vue的export里面的js代码
在这里插入图片描述
5、执行第一行代码,看看用到了哪个模块就进入到哪里,这里用到了store,下一步就是store的index.ts

3.4、文件加载流程

在一个典型的 Vue 项目中,文件的加载顺序可以归纳为以下几个方面:

入口文件加载:
main.js:通常作为项目的入口文件,负责初始化 Vue 应用,加载根组件,并挂载到 DOM 上。
根组件加载:
App.vue:根组件是整个 Vue 应用的最顶层组件,包含了应用的整体结构和布局。
路由文件加载:
router/index.js:负责配置应用的路由,包括定义路由表、路由守卫等。
状态管理文件加载:
store/index.js:负责配置应用的状态管理,例如使用 Vuex 进行全局状态管理,包括定义状态、mutations、actions 等。
组件加载:
.vue 文件:Vue 组件文件,通常包括组件的模板、样式和逻辑。
组件按需加载:在页面上使用到的组件会在需要的时候被动态加载,以优化页面加载速度。
静态资源加载:
图片、字体、样式文件等静态资源的加载。
工具类和插件加载:
utils 目录下的工具类文件、plugins 目录下的 Vue 插件等。
配置文件加载:
vue.config.js:Vue 项目的配置文件,用于配置构建工具和插件等。
.env 文件:用于配置环境变量。
babel.config.js:Babel 的配置文件。
总的来说,Vue 项目的文件加载顺序通常是从入口文件开始,依次加载根组件、路由、状态管理、组件、静态资源等,最终完成整个应用的初始化和渲染。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

目录 EasySignin cool_index SuiteCRM web1234 法一、条件竞争(没成功) 法二、session反序列化 EasySignin 先随便注册个账号登录,然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SSRF,不能直接读本地文…

T2T时代的基因组组装-文献精读-9

Genome assembly in the telomere-to-telomere era T2T时代的基因组组装,李恒大神的综述,昨天刚出刊,李恒也是samtools、seqtk等的核心作者。 seqtk安装与使用-seqtk-1.4(bioinfomatics tools-012) Samtools安装与…

DMAIC助力企业迅速响应客户诉求——客诉回复周期大缩减

近年来,客户的声音宛如企业的风向标,不容忽视。迅速而精准地回应客户的投诉,不仅是对品牌形象的捍卫,更是滋养客户满意度和忠诚度的甘泉。那么,我们如何借助DMAIC这一久经考验的质量管理法宝,来缩短客户投诉…

jdk版本冲突,java.lang.UnsupportedClassVersionError: JVMCFRE003

主要是编辑器所用的jdk版本和项目用的不一致导致的,虽然编译通过了,但是运行是会报错 选好后点击Apply点击ok,然后重新编译一遍项目就可以了

Python 全栈体系【四阶】(三十一)

第五章 深度学习 五、PaddlePaddle 基础 1. PaddlePaddle 简介 1.1 什么是 PaddlePaddle PaddlePaddle(Parallel Distributed Deep Learning,中文名飞桨)是百度公司推出的开源、易学习、易使用的分布式深度学习平台 源于产业实践&#xf…

Java基本语法(基础部分)

Java基本语法 文章目录 Java基本语法前言一、准备工作1.1 计算机软件与硬件1.2 计算机编程语言1.3 Java语言概述&程序分析1.4 Java环境搭建&Java API1.5 Java核心机制JVM 二、变量2.1 关键字&标识符2.2 变量2.3 数据类型(基本数据类型)2.3.1 基本数据类型2.3.2 基本…

【ONE·基础算法 || 递归 二叉树深搜】

总言 主要内容:编程题举例,熟悉理解递归类题型,进一步加深理解深搜,引入回溯和剪枝相关概念。       1、递归 1)、递归   实际在学习语言中我们对其有一定涉及。这里,若从宏观视角看待递归的过程&am…

30个数据工程中最常用的Python库(下)

六、数据解析和ETL库 库:beautifulsoup4 数据工程并不总是意味着从数据存储和仓库中获取数据。通常,数据需要从非结构化的来源(如网络或文档等)中提取出来。Beautiful Soup是一个库,它可以轻松地从网页上抓取信息。它…

互联网营销两大宗师:周鸿祎和雷军做个人IP有什么不同?

前几天周鸿祎说要把自己的迈巴赫卖了,准备换国产新能源,还喊话让各个车企给他送车去体验。不少车企都送去了自己的最新车型,只有雷军直接回答,“等SUV出”。我们是在吃瓜,作者却是从中看到了新老营销宗师的手法不同。 最近,在纪念互联网30周年的座谈会上,发生了一件趣事…

高级控件4:Spinner

Spinner下拉列表组件 主要集合ArrayAdapter、SimpleAdapter以及自定义的Adapter(继承自BaseAdapter)配合使用实现下拉选择或者对话框中选择某一条目。下拉使用的更多,所以,接下来的案例也会重在演示下拉效果。 本次基本就是上代…

亚马逊运营干货:多账号多店铺防关联技巧

随着亚马逊识别技术的提升,以及政策的加强,不少跨境电商的卖家都面临着多账号多店铺被关联的风险,这个时候,卖家就需要做好相关的防关联措施了,下面这些方法很有效,可以去参考! 亚马逊多账号多…

如何在Windows服务做性能测试(CPU、磁盘、内存)

目录 前言1. 基本知识2. 参数说明 前言 由于需要做一些接口测试,测试是否有真的优化 1. 基本知识 该基本知识主要用来用到Performance Monitor,以下着重介绍下这方面的知识 性能监视器(Performance Monitor):Windo…

VUE的import store from ‘./vuex/store改为‘ import store from ‘./vuex/store.js‘

ERROR Failed to compile with 1 error 下午5:25:40 error in (webpack)-dev-server/client?http://10.18.173.180:8081/sockjs-node Syntax Error: no such file or directory, open D:\4myroom\H…

C++面向对象程序设计 - 运算符重载

函数重载就是对一个已有的函数赋予新的含义,使之实现新的功能。因此一个函数名就可以用来代表不同功能的函数,也就是一名多用。运算符也可以重载,即运算符重载(operator overloading)。 一、运算符重载的方法 运算符重…

DFS与回溯专题:二叉树的最大深度

DFS与回溯专题:二叉树的最大深度 题目链接: 104.二叉树的最大深度 题目描述 代码思路 设置两个变量,max来记录最大值,sum来记录路径的节点数量。利用dfs对二叉树进行搜索,遇到节点,则sum1;遇到叶子节点&…

路由过滤与引入

1、实验拓扑 2、实验要求 1、按照图示配置 IP 地址,R1,R3,R4 上使用 1oopback口模拟业务网段 2、运行 oSPF,各自协议内部互通 3、R1 和 R2 运行 RIPv2,R2,R3和R4在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的业务…

Java web应用性能分析服务端慢之Nginx慢

一般Nginx作为整个应用的入口,即做静态服务器,也做负载均衡、反向代理;同时也因为位置靠前,还可以通过Nginx对于访问的IP、并发数进行相应的限制。在Java web应用性能分析中,Nginx是重要环节,Nginx的性能也…

SpringMvc(2)RequestMapping注解

RequestMapping注解 1 、RequestMapping的作用2、RequestMapping的出现位置3、类上与方法上结合使用4、RequestMapping注解的value属性4.1 value属性的使用4.2 Ant风格的value4.3 value中的占位符(重点) 5、RequestMapping注解的method属性5.2衍生Mappin…

VsCode一直连接不上 timed out

前言 前段时间用VsCode连接远程服务器,正常操作后总是连接不上,折磨了半个多小时,后面才知道原来是服务器设置的问题,故记录一下,防止后面的小伙伴也踩坑。 我使用的是阿里云服务器,如果是使用其他平台服务…

第十四章大数据和数据科学4分

14.1 引言 14.1.3 科学理念 1.数据科学 数据科学将数据挖掘、统计分析和机器学习与数据集成整合,结合数据建模能力,去构建预测模型、探索数据内容模式。 数据科学依赖于: 1)丰富的数据源。具有能够展示隐藏在组织或客户行为中不…