[学习笔记]找个前端模板来做物联网产品的网页端

找的开源模板

https://demos.creative-tim.com/vue-paper-dashboard/#/dashboard
git clone https://gitcode.com/creativetimofficial/vue-paper-dashboard.git

看下文件结构长啥样

文件结构
里面包含的文件类型有:git相关的文件、json文件、md文件、js文件、png文件、html文件、vue文件。
重点关注下js文件和vue文件分别起到什么作用,这两个类型的文件需要怎样的环境才能运行,是否需要编译。

(1)js文件和vue文件是做什么用的

文件内容格式:

.vue 文件是 Vue.js 的单文件组件(Single File Components,简称 SFC)格式,它允许开发者在一个文件中定义 Vue 组件的模板(template)、脚本(script)和样式(style)。这有助于更好地组织代码,并提高了代码的可读性和可维护性。
.js 文件则是用于编写 JavaScript 代码的文本文件。它可以包含函数、变量、对象、数组等 JavaScript 语法结构,用于实现各种功能。
用途:

.vue 文件主要用于组织 Vue 组件的代码结构。在 .vue 文件中,模板部分用于定义组件的 HTML 结构,脚本部分用于定义组件的数据、方法和生命周期钩子等逻辑,样式部分则用于定义组件的样式。
.js 文件则可以用于编写前端逻辑代码,如事件处理、数据处理、网络请求等。在 Vue.js 项目中,.js 文件通常用于编写 Vue 实例或组件的逻辑部分,或者用于创建和管理 Vuex 状态等。
与 Vue.js 的关系:

.vue 文件是 Vue.js 框架特有的文件格式,它使得开发者可以更加方便地组织和编写 Vue 组件。Vue.js 提供了对 .vue 文件的解析和处理能力,使得开发者可以在项目中直接使用 .vue 文件。
.js 文件则是通用的 JavaScript 文件格式,它不仅可以在 Vue.js 项目中使用,还可以在其他前端或后端项目中使用。JavaScript 是 Vue.js 的基础语言,Vue.js 是在 JavaScript 的基础上构建的一个框架。
总的来说,.vue 和 .js 文件在 Vue.js 项目中各自扮演着不同的角色。.vue 文件用于组织 Vue 组件的代码结构,而 .js 文件则用于编写前端逻辑代码。

Vue文件和JavaScript文件在Vue.js项目中的编译和协同工作主要涉及几个关键步骤和概念。

(2)vue文件和js文件是如何编译并协同工作的

文件内容:

.vue 文件:这是Vue.js的单文件组件(Single File Components,简称SFC)。每个.vue文件包含三个主要部分:<template>(HTML模板)、<script>(JavaScript逻辑)和<style>(CSS样式)。
.js 文件:这些是普通的JavaScript文件,可能包含Vue实例、组件逻辑、工具函数、库等。
编译过程:

Vue文件的编译:当Vue构建工具(如webpack或Vue CLI)处理.vue文件时,它会将这三个部分分开处理,然后重新组合。特别是<template>部分,它会被Vue的模板编译器转换为一个JavaScript的render函数。render函数返回一个虚拟DOM(Virtual DOM)树,这个树描述了组件的DOM结构。
JavaScript文件的编译:JavaScript文件(包括在.vue文件中的<script>部分)通常会被转译(如使用Babel)以支持更现代的JavaScript特性,并且可能会被压缩和混淆以减小文件大小和提高安全性。

协同工作:

在运行时,Vue实例(或组件实例)会负责根据组件的render函数来创建和更新DOM。这通常是通过Vue的响应式系统来实现的,该系统会监听数据的变化并在需要时重新渲染组件。
.vue文件和.js文件之间的通信通常是通过props(父组件向子组件传递数据)、events(子组件向父组件发送消息)、Vuex(全局状态管理)或其他Vue特定的机制来实现的。
打包过程:

构建工具(如webpack)会将所有编译后的JavaScript文件、CSS文件以及其他资源(如图片、字体等)打包成一个或多个最终的可执行文件(如bundle.js)。这些文件包含了整个应用程序的代码和资源,可以在浏览器中直接运行。
运行时:

当浏览器加载这些打包后的文件时,Vue实例会被创建并挂载到DOM上。然后,Vue的响应式系统就会开始监听数据的变化,并在需要时重新渲染组件。同时,Vue的组件系统允许组件之间进行通信和协作,以实现复杂的应用程序功能。
总的来说,Vue文件和JavaScript文件在Vue.js项目中通过编译、打包和运行时协同工作,共同构建和更新用户界面。

(3)编译后的文件也是js文件?

是的,编译后的Vue文件(.vue)和其他JavaScript文件(.js)最终都会被转换为JavaScript文件(通常是打包后的bundle.js或类似的文件),以便在浏览器中运行。

在Vue项目中,构建过程(如使用Webpack或Vite)会处理所有的源代码文件,包括.vue文件和.js文件。对于.vue文件,构建工具会将其中的<template>、<script>和<style>部分分别处理:

<template>部分会被Vue的模板编译器转换为一个JavaScript的render函数,这个函数会返回一个虚拟DOM(Virtual DOM)树,用于描述组件的DOM结构。
<script>部分包含组件的JavaScript逻辑,这部分代码会和其他.js文件中的代码一起被打包到最终的JavaScript文件中。
<style>部分包含组件的CSS样式,这些样式可能会被提取到单独的CSS文件中,或者通过CSS-in-JS的方式内联到JavaScript文件中。
然后,构建工具会将所有的JavaScript代码(包括从.vue文件中提取出来的逻辑和render函数)以及其他必要的资源(如CSS文件、图片等)打包成一个或多个最终的JavaScript文件。这些文件通常是压缩和混淆过的,以提高加载速度和安全性。

在浏览器中运行这些打包后的JavaScript文件时,Vue实例会被创建并挂载到DOM上。然后,Vue的响应式系统就会开始监听数据的变化,并在需要时重新渲染组件。同时,Vue的组件系统允许组件之间进行通信和协作,以实现复杂的应用程序功能。

所以,虽然开发时我们使用了多种不同类型的文件(如.vue和.js),但在最终的生产环境中,这些文件都会被编译和打包成JavaScript文件(以及可能的其他资源文件),以便在浏览器中运行。

(4)最终网页是如何通过url访问到的?

最终的网页通过URL获取的过程涉及多个步骤和组件的协同工作。以下是这个过程的大致概述:

输入URL:
用户在浏览器的地址栏中输入一个URL(例如:https://www.example.com),或者通过点击链接、书签等方式触发URL的加载。

DNS解析:

浏览器首先会检查本地缓存(如操作系统的DNS缓存或浏览器缓存)中是否已经有该URL对应的IP地址。
如果没有缓存,浏览器会向DNS服务器发起查询请求,以获取URL中域名(例如:www.example.com)对应的IP地址。
DNS服务器会返回域名对应的IP地址给浏览器。
建立TCP连接:

浏览器使用IP地址和默认的HTTP端口(通常是80,对于HTTPS则是443)与Web服务器建立TCP连接。
这个过程包括TCP的三次握手,即SYN(同步)请求、SYN-ACK(同步确认)响应和ACK(确认)响应。
发送HTTP请求:

浏览器构建HTTP请求,该请求包含请求行(如GET或POST方法、请求的URL路径)、请求头(如User-Agent、Accept等)和请求体(如果是POST请求)。
浏览器将HTTP请求通过TCP连接发送给Web服务器。
Web服务器处理请求:

Web服务器(如Apache、Nginx等)接收到HTTP请求后,会解析请求,并根据请求的路径和参数查找对应的资源(如HTML文件、CSS文件、JavaScript文件等)。
如果请求的资源是动态生成的(如使用PHP、Node.js等后端技术),Web服务器会调用相应的处理程序或框架来生成响应内容。
发送HTTP响应:

Web服务器将找到的资源或生成的响应内容封装成一个HTTP响应,该响应包含状态码(如200表示成功)、响应头和响应体。
Web服务器将HTTP响应通过TCP连接发送回浏览器。
浏览器接收并渲染响应:

浏览器接收到HTTP响应后,会解析响应内容。
如果响应内容是HTML文件,浏览器会开始渲染页面。这包括解析HTML标签、加载和解析CSS样式、执行JavaScript脚本等。
在渲染过程中,浏览器可能会向Web服务器发起额外的请求(如加载图片、字体等),这些请求也会遵循上述的DNS解析、建立连接、发送请求、接收响应等步骤。
关闭TCP连接:

当HTTP请求和响应都完成传输后,浏览器和Web服务器之间的TCP连接会被关闭,释放网络资源。
通过这个过程,用户最终能够在浏览器中看到和交互网页内容。需要注意的是,这个过程是一个简化的概述,实际过程中还涉及许多其他的细节和组件(如浏览器缓存、CDN、负载均衡器等),它们共同协作以确保用户能够快速、安全地访问和使用网页。

(5)如何编译一个vue项目?

编译一个 Vue 项目通常涉及使用构建工具,如 Webpack、Vite 或 Vue CLI。以下是如何使用 Vue CLI 来编译(或称为“构建”)一个 Vue 项目的步骤:

安装 Vue CLI
如果你还没有安装 Vue CLI,可以通过 npm(Node.js 的包管理器)来安装它:

npm install -g @vue/cli  
# OR  
yarn global add @vue/cli

创建 Vue 项目
使用 Vue CLI 创建一个新的 Vue 项目:

vue create my-project

然后,按照提示选择你需要的配置选项。

进入项目目录
使用 cd 命令进入你的项目目录:

cd my-project

安装依赖
通常,在创建项目后,所有的依赖都已经安装好了。但如果你需要添加新的依赖或重新安装依赖,可以使用以下命令:

npm install  
# OR  
yarn

开发模式下运行项目
在开发模式下,你可以使用以下命令来运行你的 Vue 项目。这个命令会启动一个开发服务器,并开启热重载功能:

npm run serve  
# OR  
yarn serve

此时,你应该能够在浏览器中看到你的 Vue 项目了。

编译(构建)项目
当你想要将你的 Vue 项目编译(或称为“构建”)为生产环境时,可以使用以下命令:

npm run build  
# OR  
yarn build

这个命令会创建一个 dist 目录(除非你在 vue.config.js 中指定了其他目录),并将你的 Vue 项目编译为一个或多个可以在生产环境中部署的静态文件。这些文件通常是优化过的,并包含了所有必要的资源,如 HTML、CSS、JavaScript、图片等。

部署
编译完成后,你可以将 dist 目录中的文件部署到你的服务器上。具体如何部署取决于你的服务器配置和所使用的技术栈。通常,你可以将 dist 目录中的文件复制到你的 Web 服务器的根目录或指定的目录下,然后配置服务器以提供这些文件。

注意:在构建过程中,Vue CLI 会使用 webpack 作为其默认的打包工具。你可以在项目的根目录下找到一个 vue.config.js 文件(如果没有,你可以手动创建一个),并在其中配置 webpack 的选项,以自定义你的构建过程。

(6)不想在本机搞环境,如何在Ubuntu上安装该环境?

在Ubuntu上安装Node.js环境,可以通过以下步骤进行:

更新软件包列表:
首先,打开终端,并执行以下命令来确保系统的软件包列表是最新的:

sudo apt update

安装Node.js:
接下来,通过运行以下命令来安装Node.js。这将安装Node.js的稳定版本:

sudo apt install nodejs

在安装过程中,系统将提示您输入管理员密码以确认安装。

检查Node.js版本:
安装完成后,您可以使用以下命令来验证Node.js的安装版本:

node -v

如果安装成功,将显示Node.js的版本号。

安装npm:
npm是Node.js的包管理器,您可以使用它来安装和管理Node.js模块。通常,npm会在安装Node.js时一起安装。如果没有安装,您可以通过以下命令安装它:

sudo apt install npm

如果您想安装特定版本的Node.js,或者想使用更灵活的安装方式,可以考虑使用NodeSource的PPA(Personal Package Archive)来安装。使用PPA安装Node.js的步骤如下:

安装curl(如果尚未安装):

sudo apt install curl

添加NodeSource的apt仓库:
根据你想安装的Node.js版本,运行以下命令之一(这里以Node.js 16.x为例):

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -

将16.x替换为您想要的Node.js版本号。

安装Node.js:
添加完apt仓库后,运行以下命令来安装Node.js:

sudo apt install nodejs

以上就是在Ubuntu上安装Node.js环境的基本步骤。如果您在安装过程中遇到任何问题,可以查看相关的错误消息或日志,以获取更多关于问题的信息。

(7)js是从浏览器申请的内存吗?

JavaScript 是从浏览器申请的内存。当在浏览器中运行 JavaScript 代码时,浏览器会为 JavaScript 引擎分配一定的内存。JavaScript 引擎(如 V8、SpiderMonkey 等)负责管理这部分内存,并根据需要为变量、对象、数组、函数等分配内存。

具体来说,JavaScript 中的内存分配主要有两种方式:栈(Stack)和堆(Heap)。

栈内存用于存储基本类型的数据(如数字、字符串、布尔值等)和引用类型数据的引用地址。这些数据在函数执行期间被创建,并在函数执行结束时被销毁。由于栈内存的大小是固定的,因此其分配和释放速度非常快。
堆内存用于存储引用类型的数据(如对象、数组等)。这些数据的大小是不确定的,因此需要在运行时动态地分配内存。当不再需要这些数据时,JavaScript 引擎会通过垃圾回收机制来释放其占用的内存。
在浏览器中,JavaScript 的内存管理主要由 JavaScript 引擎负责。当需要为变量或对象分配内存时,JavaScript 引擎会向浏览器申请内存;当不再需要这些内存时,JavaScript 引擎会通知浏览器释放内存。因此,虽然 JavaScript 代码是在浏览器中运行的,但其内存管理实际上是由 JavaScript 引擎和浏览器共同完成的。

在远端Ubuntu服务器上编译,然后在本地查看文件和运行

samba挂载远端服务器
编译后打开静态网页
这代码不知道为啥,索引css文件啥的都是直接从磁盘根目录开始的相对路径,导致在dist目录打开会报错,之后再看看怎么改下这个代码。

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值