浏览文章前

这一期,我分享给大家三点看源码的小技巧,这也是从别的大佬那总结的。

被反复使用的代码
这样的代码是一个软件的重点函数,一个大神的写法有很多精华值得学习。
穿越时间的代码
如果一段代码10年甚至15年,都还在使用。说明它的设计思想一定很棒。
好调试的代码
一个程序的代码很容易就调试成功,说明作者的项目结构能力很强,值得学习。

前言

今天,我们来搞一个新东西,名字叫基于Vue技术栈的全栈热重载生产环境脚手架。实话说,这个名字我想了很久。最终,还是以这个名字作为文章标题。我先拆分解释下:全栈的意思是支持前后端;热重载这个名词相信大家很熟悉,就是页面每次改动,不需要手动去刷新,可自动刷新;生产环境这里你可以理解成线上环境,用户使用的环境。
缘起

为什么会想到开发这样的一款项目呢?我们平时可能更多地使用VueCLI或者Vite来开发Vue项目,但是如果就单纯开发一个简单的网页,未免有点小题大作了。

这时,我们可能会用到Vue的生产环境版本。但是,这样的话我们就不能用VueCLI、Vite那样的热重载功能,就需要不停的刷新网页。如果在编辑器中对html文件增加或删除了元素,或者是在css文件中修改了某个元素的某个样式,然后想在浏览器中看到效果,通常的步骤是:把窗口切换到浏览器,然后按键盘上的F5刷新页面。在制作页面的时候这个动作可能会重复很多次。我们开发效率就大大地减少了。

所以,我们有必要开发一款可热重载的生产环境脚手架。如果增加模拟数据接口服务,那就更完美了。光说不练假把式,我们就开发一款基于Vue技术栈的全栈热重载生产环境脚手架。
实战
一、初始化项目

首先,我们建一个空文件夹,名字可以叫gulp-vue-cli,这就是项目根文件夹。相信聪明的小伙伴可以看出,我们今天的主角是gulp。建完项目根文件夹之后,我们会使用命令快速生成package.json文件。

npm init -y

二、创建前端项目与后端项目

下一步,我们会在创建好的项目根文件夹内创建一个前端项目文件夹,名字可以叫src。另外,后端项目文件夹名字叫server。

下一步,我们先在src文件夹下创建一个前端项目,以下为目录详情:

css —存放样式目录
js —存放逻辑文件目录
imgs —存放图片目录
index.html —项目主页面

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Simple Vue</title>
<link rel="icon" href="/imgs/favicon.ico" />
<link rel="stylesheet" href="/css/index.css" />
</head>
<body>
<div id="app">
<img src="/imgs/logo.png" alt="" />
<p class="mes">{{ message }}</p>
<p class="author">{{txt}}</p>
<p class="status">{{status}}</p>
<button @click="sendData">send</button>
<p>{{resTxt}}</p>
</div>
</body>
<script src="/js/vue.js"></script>
<script type="module">
import {addTxt} from './js/utils.js';
const app = new Vue({
el: "#app",
data: {
message: "Hello Simple Vue!",
resTxt:"",
status:"",
txt:addTxt()
},
methods: {
sendData() {
fetch("http://localhost:3000/send/", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/118693321

最新文章

  1. 什么情况下才要重写Objective-C中的description方法
  2. MongoDB-基础-limit-skip-sort
  3. Xamarin 免费了,你能做什么?
  4. ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理
  5. PHP获取当前域名$_SERVER[&#39;HTTP_HOST&#39;]和$_SERVER[&#39;SERVER_NAME&#39;]的区别
  6. python---dnspython
  7. string.Equals 比较2个字符串是否相同忽略大小写
  8. CodeForces Good Bye 2014 B. New Year Permutation
  9. Eclipse下使用Hadoop单机模式调试MapReduce程序
  10. Properties/Property文件读取(键值均)乱码问题!
  11. 【Java学习笔记之二十五】初步认知Java内部类
  12. AlexNet 网络详解及Tensorflow实现源码
  13. C#创建控制台项目引用Topshelf的方式,部署windows服务。
  14. Shiro-ini认证
  15. RabbitMQ防止消息丢失
  16. android 显示gif图片
  17. 【netcore基础】MVC API全局异常捕捉中间件ExceptionHandlerMiddleWare
  18. [转]講講 John Carmack 的快速反平方根演算法
  19. C#开发Unity游戏教程之Unity中方法的参数
  20. 约翰&#183;卡马克和他的id Software

热门文章

  1. [已解决] npm ERR! code EINVALIDPACKAGENAME Invalid package name &quot;&quot;: name cannot start with an underscore;
  2. 如何利用PowerShell完成的Windows服务器系统安全加固实践和基线检测
  3. SpringBoot 入门及配置
  4. 2021.08.09 P6037 Ryoku的探索(基环树)
  5. Python连接数据库,列表输出数据库中的某一列
  6. .NET宝藏API之:IHostedService,后台任务执行
  7. 21天学通Python PDF完整版
  8. 2. flddler响应显示乱码问题解决方案
  9. 关于python中selenium一些知识点
  10. uniapp 入门