「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,然后通过cssjshtml上添加样式以及交互效果。所以我们可以点开项目根目录的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存放项目相关的依赖包
  • srcsource的缩写,所以是存放源代码的地方
  • static是静态的意思,该目录是用来存放一些静态文件的地方
  • test是放代码测试文件的地方

所以如果我们要查找页面的内容(涉及代码,属于可改变的内容而非静态文件),应该在src目录下找,打开src目录,可以看到三个目录和两个文件。一般来说,直接存放在目录下的,是类似于"程序入口"一样的文件。根据文件名称,我们班先尝试打开main.js,查看内容
在这里插入图片描述
可以看到main.js里面import 导入了一些东西,虽然我们不知道具体是什么,但是我们的代码是标准化的,所以根据命名,可以推测:

  • App作为appliaction(应用)的简写,应该代表跟应用相关的内容;
  • router是路由器的意思,所以应该是控制网页路由的部分。路由就是道路向导的意思,指的是告诉浏览器地址栏输入的地址对应着代码中哪一部分的内容。
  • Vue是我们用的前端框架的名称。前端框架就是生成页面内容的工具,所以这里使用了vue(),并且传入了Approuter这两部分内容,以及我们看到了#app这个用法,app是我们在index.html代码中看到的<body id='app'></body>的id,所以这里应该是定位到了index.html的body位置

根据以上三点,我们可以基本确定,我们在浏览器中看到的内容就是从这里传到index.html并被浏览器展示出来的。

进一步,我们查看App的内容,看页面的图片和文字是如何引入到页面的,打开App.vue之后,可以看到内容如下:

在这里插入图片描述我们看到光标所在位置有一个<img>引用了一个logo.png,这就是页面展示的vuelogo图片来源。至于logo图片下面的文本和跳转链接没有看到具体的代码,只有一行<router-view/>,所以考虑这些内容是由这行代码处理的。

接下来我们查资料可以知道(看着router-view愣猜只能知道是跟路由和展示有关,其他的就得靠查资料补充了),在main.js中传入的router会把<router-view>替换成与path值对应的components

打开router目录下的index.js,这里我们浏览器输入的path/,在index.js中该路径对应的componentsHelloWorld(由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入门,(●ˇ∀ˇ●) 达成✔

写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇

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

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

相关文章

【使用Node.js搭建自己的HTTP服务器】

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

生成式AI系列 —— DCGAN生成手写数字

1、模型构建 1.1 构建生成器 # 导入软件包 import torch import torch.nn as nnclass Generator(nn.Module):def __init__(self, z_dim20, image_size256):super(Generator, self).__init__()self.layer1 nn.Sequential(nn.ConvTranspose2d(z_dim, image_size * 32,kernel_s…

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库&#xff0c;可在TensorFlow框架上运行&#xff0c;它的重点是理解深度学习技术&#xff0c;如为神经网络创建层&#xff0c;以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…

5、css学习5(链接、列表)

1、css可以设置链接的四种状态样式。 a:link - 正常&#xff0c;未访问过的链接a:visited - 用户已访问过的链接a:hover - 当用户鼠标放在链接上时a:active - 链接被点击的那一刻 2、 a:hover 必须在 a:link 和 a:visited 之后&#xff0c; a:active 必须在 a:hover 之后&…

两款开箱即用的Live2d

目录 背景第一款&#xff1a;开箱即用的Live2d在vue项目中使用html页面使用在线预览依赖文件地址配置相关参数成员属性源码 模型下载 第二款&#xff1a;换装模型超多的Live2d在线预览代码示例源码 模型下载 背景 从第一次使用服务器建站已经三年多了&#xff0c;记得那是在2…

php+echarts实现数据可视化实例2

效果: 代码 php <?php include(includes/session.inc); include(includes/SQL_CommonFunctions.inc); ?> <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible"…

nginx防盗链

防盗链介绍 通过二次访问&#xff0c;请求头中带有referer&#xff0c;的方式不允许访问静态资源。 我们只希望用户通过反向代理服务器才可以拿到我们的静态资源&#xff0c;不希望别的服务器通过二次请求拿到我们的静态资源。 盗链是指在自己的页面上展示一些并不在自己服务…

Android Selector 的使用

什么是 Selector&#xff1f; Selector 和 Shape 相似&#xff0c;是Drawable资源的一种&#xff0c;可以根据不同的状态&#xff0c;设置不同的图片效果&#xff0c;关键节点 < selector > &#xff0c;例如&#xff1a;我们只需要将Button的 background 属性设置为该dr…

数据结构-->栈

&#x1f495;休对故人思故国&#xff0c;且将新火试新茶&#xff0c;诗酒趁年华&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;详解链表OJ题 前言&#xff1a; 前面已经学习过顺序表&#xff0c;链表。他们都是线性表&#xff0c;今天要学习的栈也是一种线…

MYSQL数据库

数据库概述 1、基本概念 1.1、数据&#xff1a;(DATA) 描述事物的符号记录,包括数字&#xff0c;文字、图形、图像、声音、档案记录等,以“记录”形式按统一的格式进行存储 1.2、表&#xff1a; 将不同的记录组织在一起&#xff0c;用来存储具体数据 1.3、数据库&#xff1…

Nacos

Nacos介绍 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的⾸字⺟简称&#xff0c;⼀个更易于构 建云原⽣应⽤的动态服务发现、配置管理和服务管理平台。 在这个介绍中&#xff0c;可以看出Nacos⾄少有三个核⼼功能&#xff1a; 1. 动态服务发现 2. 配…

html动态爱心代码【三】(附源码)

目录 前言 特效 内容修改 完整代码 总结 前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直…

【Java从入门到精通|1】从特点到第一个Hello World程序

写在前面 在计算机编程领域&#xff0c;Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境&#xff0c;以及如何编写您的第一个Java程序。 一、Java…

RISC-V公测平台发布· CoreMark测试报告

一. CoreMark简介 CoreMark是一款用于评估CPU性能的基准测试程序&#xff0c;它包含了多种不同的计算任务&#xff0c;包括浮点数、整数、缓存、内存等方面的测试。CoreMark的测试结果通常被用来作为CPU性能的参考&#xff0c;它可以帮助开发人员和系统管理员评估不同处理器和…

【音视频】基于webrtc的聊天室的设计

目录 术语 webrtc建连流程 系统整体架构 信令服务器房间状态管理 用户加入房间流程 用户加入房间并推流&#xff1a; 其他用户订阅此用户流 用户加入房间并订阅房间其他所有用户 用户退出房间流程 平行集群模式​编辑 第一阶段demo 设计 参考文章 术语 sdp: 在webrt…

冷冻冷藏自动化立体库|HEGERLS四向穿梭车助力打造冷链智能仓储新力量

随着中国仓储物流整体规模和低温产品消费需求的稳步增长&#xff0c;冷链市场应用潜力不断释放。而在实际运行中&#xff0c;由于冷库容量不足、基础设施落后、管理机制欠缺等原因&#xff0c;经常出现“断链”现象&#xff0c;严重威胁到产品质量和消费者安全。 河北沃克金属…

美国FDA医疗器械分类目录数据库查询

最近我们在接到FDA医疗器械咨询项目时&#xff0c;经常收到客户关于公司产品在美国FDA医疗器械认证中或是国内所属的产品类别以及如何查询产品分类的疑问。在这里&#xff0c;我将为大家解答这些问题&#xff0c;希望能够提供帮助&#xff01; 美国FDA医疗器械产品目录中包含了…

CSS如何将浏览器文字设置小于12px

CSS如何将浏览器文字设置小于12px 使用transform: scale进行缩放 transform: scale(0.8);<div><p class"first">第一段文字</p><p class"second">第二段文字</p> </div>.first {font-size: 12px; }.second {font-si…

技术分享 | 如何编写同时兼容 Vue2 和 Vue3 的代码?

LigaAI 的评论编辑器、附件展示以及富文本编辑器都支持在 Vue2&#xff08;Web&#xff09;与 Vue3&#xff08;VSCode、lDEA&#xff09;中使用。这样不仅可以在不同 Vue 版本的工程中间共享代码&#xff0c;还能为后续升级 Vue3 减少一定阻碍。 那么&#xff0c;同时兼容 Vue…

Chapter 14: Using Web Services | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Python and Web ServicesUsing Web ServiceseXtensible Markup Language - XMLParsing XMLJavaScript Object Notation - JSONParsing JSONApplication Programming InterfacesSecurity and API usageGlossary Python for Everybody Expl…