「Vue|网页开发|前端开发」01 快速入门:用vue-cli快速写一个Vue的HelloWorld项目
本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。
文章目录
- 一、准备工作:安装node.js
- 二、项目搭建
- 创建项目目录
- 全局安装vue-cli
- 使用Webpack初始化项目
- 启动项目
- 学会如何修改页面内容
- 网页内容是如何展示出来的
- 方法一:搜索关键内容
- 方法二:看目录
一、准备工作:安装node.js
Windows
系统的node.js
安装十分简易,没有环境安装经验的伙伴可以参考文章:Windows系统下安装node.js
二、项目搭建
创建项目目录
我们需要先创建一个用于放置项目文件的目录,之后该项目相关的命令操作都需要在该路径下执行。我们新建一个hellovue
的目录,然后进入到该目录,命令行路径提示如下:C:\hellovue>
全局安装vue-cli
- 运行命令:
npm install --global vue-cli
- 安装完毕后,运行命令:
vue -V
验证安装情况,如果输出版本号,则说明安装成狗
使用Webpack初始化项目
Webpack
是一个模块打包器。 它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用。
vue-cli
可以使用webpack模板对项目进行初始化,即生成webpack模板的项目初始代码文件。
可以运行命令:vue init webpack hellovue
,然后根据提示填写项目基本信息以及相关工具配置。
各个选项的含义如下:
选项 | 意思 | 建议 |
---|---|---|
Project name | 项目名称 | 起一个你喜欢的项目名称即可 |
Proiect description | 项目描述 | 描述一下项目是什么应用即可;练手项目可以直接默认回车 |
Author | 作者 | 练手项目写自己即可;业务项目写团队名或具体成员名称 |
Vue build | 项目构建模式 | 回车选择默认方式即可 |
Install vue-router | 项目是否安装vue路由 | 选择yes |
Use ESLint to lint your code | 是否选择ESLint开发验证功能 | 建议选择No,否则可能因为格式检查报错导致代码无法运行 |
Set up unit tests | 是否开启单元测试 | 选择yes,项目后期越写越完善肯定需要测试来保证功能和效率 |
Pick a test runner | 选择测试方式 | 默认Jtest即可 |
Setup e2e tests with Nightwatch | 是否开启e2e测试 | 建议选择no |
Should we runnpm install for you after the project has been created | 项目初始化后是否选择指定的包管理工具自动下载项目所需要的包 | 建议选择 Yes.use NPM |
启动项目
初始化结束之后,会有如下输出:
上面的输出已经提示我们,如果我们要启动项目,需要运行两个命令:
cd hellovue
:进到我们刚才新建并且初始化的子项目中npm run dev
:dev模式运行项目(开发模式,用于开发者开发和测试)
运行后会有如下提示:
根据输出,我们的项目已经运行起来了,浏览器访问http://localhost:8080
即可以到看到了。于是 我们浏览器访问指定地址后可以看到如下页面:
学会如何修改页面内容
网页内容是如何展示出来的
我们要修改网页内容,就要知道网页内容是如何展示出来的。
首先用你喜欢的编辑器打开项目(我个人偏爱并强推VS Code
),可以看到如下右侧项目代码文件结构:
如果过了解过网页开发的基础知识,会知道我们看到的网页都是html
,然后通过css
和js
在html
上添加样式以及交互效果。所以我们可以点开项目根目录的index.html
,看到代码内容如下:
index.html
内容中的<title>
与我们看到的页面tab名称是对应的,说明我们看到的确实是这个html
里面的内容。但是<body>
标签中并没有内容,那么我们在页面上看到的vue
图片、文字和链接是哪来的呢?
这里提两种探索的方法:
方法一:搜索关键内容
我们看到页面有三个文本,所以我们可以直接用IDE搜索这三条文本所在位置,如下:
我们尝试修改一下找到的HelloWolrd.vue
中的Welcom to Your Vue.js App
,改成Hello Vue World!
并保存,然后刷新浏览器查看页面是否发生变化,可以看到页面如下:
页面内容确实跟预期一样发生了变化。再去看HelloWorld.vue
文件中的其他内容,可以看到浏览器页面里展示的其他内容也都在这个代码文件中。
所以我们可以确定,如果我们想修改页面内容只需要修改HelloWorld.vue
即可
同样地,当我们想进一步去探索vue
是如何知道要把HelloWorld.vue
的内容渲染到浏览器页面上的,我们就可以搜索HelloWorld.vue
,看哪里用到了这个文件。由于HelloWorld.vue
搜索结果为空,于是我们改成搜索HelloWorld
,搜索结果如下:
我们可以看到,这是在一个router
目录下index.js
文件中,根据名称可以知道,router
控制路由(即浏览器地址到代码文件的对应), index.js
是入口文件。代码中写明对于path
为/
的,对应到的导入的HelloWorld
代码,这意味着对于地址http://localhost:8080/#/
(#
后面是/
),会使用/
对应的HelloWorld
进行页面渲染。
方法二:看目录
使用标准化工具来组织代码的好处是,文件的位置和命令都有迹可循。我们看到根目录下index.html
之外的文件名字都表明这些文件是一些配置相关的文件。而其他文件夹根据名字可以知道:
build
是写好代码之后构建完毕用于部署到服务器上的文件夹config
是用来放配置的目录node_modules
存放项目相关的依赖包src
是source
的缩写,所以是存放源代码的地方static
是静态的意思,该目录是用来存放一些静态文件的地方test
是放代码测试文件的地方
所以如果我们要查找页面的内容(涉及代码,属于可改变的内容而非静态文件),应该在src
目录下找,打开src
目录,可以看到三个目录和两个文件。一般来说,直接存放在目录下的,是类似于"程序入口"一样的文件。根据文件名称,我们班先尝试打开main.js
,查看内容
可以看到main.js
里面import
导入了一些东西,虽然我们不知道具体是什么,但是我们的代码是标准化的,所以根据命名,可以推测:
App
作为appliaction(应用)的简写,应该代表跟应用相关的内容;router
是路由器的意思,所以应该是控制网页路由的部分。路由就是道路向导的意思,指的是告诉浏览器地址栏输入的地址对应着代码中哪一部分的内容。Vue
是我们用的前端框架的名称。前端框架就是生成页面内容的工具,所以这里使用了vue()
,并且传入了App
和router
这两部分内容,以及我们看到了#app
这个用法,app
是我们在index.html
代码中看到的<body id='app'></body>
的id,所以这里应该是定位到了index.html
的body位置
根据以上三点,我们可以基本确定,我们在浏览器中看到的内容就是从这里传到index.html
并被浏览器展示出来的。
进一步,我们查看App
的内容,看页面的图片和文字是如何引入到页面的,打开App.vue
之后,可以看到内容如下:
我们看到光标所在位置有一个<img>
引用了一个logo.png
,这就是页面展示的vue
logo图片来源。至于logo图片下面的文本和跳转链接没有看到具体的代码,只有一行<router-view/>
,所以考虑这些内容是由这行代码处理的。
接下来我们查资料可以知道(看着router-view
愣猜只能知道是跟路由和展示有关,其他的就得靠查资料补充了),在main.js
中传入的router
会把<router-view>
替换成与path
值对应的components
。
打开router目录下的index.js
,这里我们浏览器输入的path
是/
,在index.js
中该路径对应的components
是HelloWorld
(由HelloWorld.vue
导入)
,如下:
于是我们果断打开HelloWorld.vue
,可以看到浏览器页面展示的内容基本都在HelloWorld
里面了:
但是我们看到代码中的<h1>
内容不是我们在浏览器看到的Welcome to Your Vue.js App
而是{{ msg }}
,可以推测这里是一个变量引用的方式,msg
的值应该是Welcome to Your Vue.js App
,所以我们搜索找到msg
位置如下:
如我们所料,msg
的值是Welcome to Your Vue.js App
,于是我们将值改成Hello Vue World!
,并刷新页面,可以看到页面内容如下:
页面展示的标题文本变成了我们修改后的内容。
我们的推测都得到了验证,我们也明白了vue
是如何将代码渲染到浏览器的。
至此,我们通过一个HelloWorld项目掌握了vue如何将浏览器地址对应到具体代码,标准化的代码文件结构以及如何修改代码使得页面展示我们希望的内容。
vue
入门,(●ˇ∀ˇ●) 达成✔
写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇
相关文章:
「Vue|网页开发|前端开发」01 快速入门:用vue-cli快速写一个Vue的HelloWorld项目
本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。 文章目录 一、准备工作:安装node.js二、项目搭建创建项目目录全局安装vue-cli使用Webpack初始化项目启动项目学会…...
7.5.tensorRT高级(2)-RAII接口模式下的生产者消费者多batch实现
目录 前言1. RAII接口模式封装生产者消费者2. 问答环节总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-RAI…...
华为OD-最大括号深度
题目描述 一个合法的括号匹配序列有以下定义: 1、空串""是一个合法的括号匹配序列 2、如果"X"和"Y"都是合法的括号匹配序列,"XY"也是一个合法的括号匹配序列 3、如果"X"是一个合法的括号匹配序列,那么"(X)"也是一…...
【Leetcode】108. 将有序数组转换为二叉搜索树
一、题目 1、题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-1…...
【树莓派打怪升级】:玩转个人Web世界!
文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配置cpola…...
mysql5.7在centos环境下的常见故障
1. GPG Keys升级导致安装失败 错误信息: The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this reposi…...
hive中get_json_object函数不支持解析json中文key
问题 今天在 Hive 中 get_json_object 函数解析 json 串的时候,发现函数不支持解析 json 中文 key。 例如: select get_json_object({ "姓名":"张三" , "年龄":"18" }, $.姓名);我们希望的结果是得到姓名对应…...
Azure VM上意外禁用NIC如何还原恢复
创建一个windows虚拟机,并远程连接管理员的方式打开powershell 首先查看虚拟网卡,netsh interface show interface 然后禁用虚拟网卡 ,netsh interface set interface Ethernet disable 去Azure虚拟机控制台,打开串行控制台 控制台中键入cmd,…...
神经网络简单理解:机场登机
目录 神经网络简单理解:机场登机 编辑 激活函数:转为非线性问题 编辑 激活函数ReLU 通过神经元升维(神经元数量):提升线性转化能力 通过增加隐藏层:增加非线性转化能力编辑 模型越大,…...
Sping源码(七)— 后置处理器
简单回顾一下上一篇文章,是在BeanFacroty创建完之后,可以通过Editor和EditorRegistrar实现对类属性的自定义扩展,以及忽略要自动装配的Aware接口。 本篇帖子会顺着refresh()主流程方法接着向下执行。在讲invokeBeanFactoryPostProcessors方法…...
docker导出、导入镜像、提交
导出镜像到本地,然后可以通过压缩包的方式传输。 导出:docker image save 镜像名:版本号 > /home/quxiao/javatest.tgz 导入:docker image load -i /home/quxiao/javatest.tgz 删除镜像就得先删除容器,当你每运行一次镜像&…...
shell的变量
一、什么是变量 二、变量的命名 三、查看变量的值 env显示全局变量,刚刚定义的root_mess是局部变量 四、变量的定义 旧版本(7、8四个文件都加载)和新版本(9只加载两个etc)不一样,所以su - 现在要永久生效在…...
CentOS系统环境搭建(十三)——CentOS7安装nvm
centos系统环境搭建专栏🔗点击跳转 CentOS7.9安装nvm 文章目录 CentOS7.9安装nvm1.安装2.刷新系统环境3.查看所有node4.安装Node.js版本5.查看已安装版本号6.使用指定版本7.设置默认版本8.验证 在我们的日常开发中经常会遇到这种情况:手上有好几个项目&…...
uniapp评论列表插件获取
从评论列表,回复,点赞,删除,留言板 - DCloud 插件市场里导入,并使用。 代码样式优化及接入如下: <template><view class"hb-comment"><!-- 阅读数-start --><view v-if&q…...
3.redis数据结构之List
List-列表类型:L&R 列表类型:有序、可重复 Arraylist和linkedlist的区别 Arraylist是使用数组来存储数据,特点:查询快、增删慢 Linkedlist是使用双向链表存储数据,特点:增删快、查询慢,但是查询链表两端…...
安装使用MySQL8遇到的问题记录
1、root密码 启动运行后 /var/log/mysqld.log 存在默认密码 2023-08-21T15:58:17.469516Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.34) initializing of server in progress as process 61233 2023-08-21T15:58:17.478009Z 1 [System] [MY-013576] [I…...
Mysql、Oracle 中锁表问题解决办法
MySQL中锁表问题的解决方法: 1. 确定锁定表的原因: 首先,需要确定是什么原因导致了表的锁定。可能的原因包括长时间的事务、大量的并发查询、表维护操作等。 2. 查看锁定信息: 使用以下命令可以查看当前MySQL数据库中的锁定信…...
AUTOSAR规范与ECU软件开发(实践篇)5.1 ETAS ISOLAR-A工具简介
前言 如前所述, 开发者可以先在系统级设计工具ISOLAR-A中设计软件组件框架, 包括端口接口、 端口等, 即创建各软件组件arxml描述性文件; 再将这些软件组件描述性文件导入到行为建模工具, 如Matlab/Simulink中完成内部行为建模。 亦可以先在行为建模工具中完成逻辑建模, 再…...
shell脚本——expect脚本免交互
目录 一.Here Document 1.1.定义 1.2.多行重定向 二.expect实现免交互 2.1.基础免交互改密码 2.2.expect定义 2.3.expect基本命令 2.4.expect实现免交互ssh主机 一.Here Document 1.1.定义 使用I/O重定向的方式将命令列表提供给交互式程序,是标准输 入的一…...
ubuntu18.04安装远程控制软件ToDest方法,针对官网指令报错情况
有时我们在家办公,需要控制实验室的笔记本,因此好用的远程控制软件会让我们的工作事半功倍! 常用的远程控制软件有ToDesk,向日葵,以及TeamViewer,但是为感觉ToDesk更流畅一些,所以这里介绍一下…...
系统架构设计师之缓存技术:Redis持久化的两种方式-RDB和AOF
系统架构设计师之缓存技术:Redis持久化的两种方式-RDB和AOF...
以创新点亮前路,戴尔科技开辟数实融合新格局
编辑:阿冒 设计:沐由 2023年,对于戴尔科技而言是特殊的一年,这是戴尔科技进入中国市场第25个年头——“巧合”的是,这25年也是中国产业经济发展最快,人们工作与生活发生变化最大的四分之一个世纪。 2023年&…...
使用Pandas处理Excel文件
Excel工作表是非常本能和用户友好的,这使得它们非常适合操作大型数据集,即使是技术人员也不例外。如果您正在寻找学习使用Python在Excel文件中操作和自动化内容的地方,请不要再找了。你来对地方了。 在本文中,您将学习如何使用Pan…...
设计模式——接口隔离原则
文章目录 基本介绍应用实例应传统方法的问题和使用接口隔离原则改进 基本介绍 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上先看一张图: 类 A 通过接口 Interface1 依赖类 B,类 C 通过接口 Interface1 依赖类 D&…...
黑客(网络安全)自学
想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…...
《Go 语言第一课》课程学习笔记(三)
构建模式:Go 是怎么解决包依赖管理问题的? Go 项目的布局标准是什么? 首先,对于以生产可执行程序为目的的 Go 项目,它的典型项目结构分为五部分: 放在项目顶层的 Go Module 相关文件,包括 go.…...
PSP - 基于开源框架 OpenFold Multimer 蛋白质复合物的结构预测与BugFix
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132410296 AlphaFold2-Multimer 是一个基于 AlphaFold2 的神经网络模型,可以预测多链蛋白复合物的结构。该模型在训练和推理时都可以处…...
Java课题笔记~ MyBatis分页查询插件
1.添加依赖 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version> </de…...
(嵌入式c语言)类型修饰符
类型修饰符 对内存资源存储位置的限定 auto 默认的类型修饰符 修饰的变量可读可写 register 因为你内部寄存器比较少,使用此类型修饰符,会告诉编译器尽量把此数据放到寄存器。 CPU内部寄存器是编号来定义,无地址编号,所以r…...
1、Spring底层核心原理解析
1.入门案例 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); UserService userService = (UserService) context.getBean("userService"); userService.test(); 对于这三行代码应该,大部分同学应该都是比…...
门户网站建设先进性/app安装下载
点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达关注公众号后台回复pay或mall获取实战项目资料视频作者:rickiyang原文:www.cnblogs.com/rickiyang/p/11074232.html谈到序列化我们自然想到 Java 提供的 Serializable 接…...
scf900色带/南宁百度seo排名公司
在百度控制台发布自定义样式并复制样式ID 添加 setMapStyleV2 功能 map.setMapStyleV2({styleId:76c03cdd35fa1e24f39edeb18849f04e}) 完整代码如下: <!DOCTYPE html> <html lang"en"> <head><script type"text/javascript&…...
行业门户网站的优化怎么做yps行业门户系统/广东宣布即时优化调整
1.排序 给数组排序 按照字母的升序 //对key按字母升序排序NSArray *sortedArray [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){return [obj1 compare:obj2 options:NSNumericSearch];}];给数组排序 按照字母的降序 //对key按字母升序降序NSArray …...
建设企业功能网站/网络推广主要是做什么工作
转自 Laravel 社区:https://laravel-china.org/top...Laravel Dusk 当编写接口测试时,Laravel 提供了一组有用的帮助方法,用来方便地单击链接,填充表单文件或提交表单。Laravel 使用 Symfony BrowserKit 组件来模拟 Web 浏览器的行…...
asp做登入网站/网站优化外包推荐
前言在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参数,还得提供Signature&…...
wordpress图片轮播插件/网站维护的内容有哪些
1、使用 gitlab 创建合并请求 master 合并到 branch_test --> compare branches and continue --> submit merge request 提示:合并冲突。 2、使用 idea 打开项目。 (1)执行:git fetch origin (2)切换到 master 分支,更新到最新版本。 (3)切换到 branch_test 分支,更…...