前端项目练习(练习-007-typescript-02)

news2024/11/26 13:34:49

学习前,首先,创建一个web-007项目,内容和web-006一样。(注意将package.json中的name改为web-007)

前面的例子,我们使用了nodejs+webpack,成功创建了包含html,ts,css三个文件的项目,并且在运行项目后,可以动态的修改内容,不用重启就可以在浏览器查看修改后的结果。

目前的配置中,项目只有一个入口(entry),一个页面,这在真实开发环境显然是不可能的。现在我们来设计三个页面,分别是登录页面,数据列表页面和数据详情页面,并创建到不同的子文件夹中:

关于每个文件的内容,这里为了演示流程,只写一些最近本的文字和按钮就行,来看login的三个文件:

再来看一下list的三个文件:

最后看一下content的三个文件内容:

可以看到,每个页面上就是展示了一行字,和加了几个按钮,这几个按钮是为了页面之间的跳转用的,后面会用ts实现页面跳转。

为了跳转快捷,我们在index.html中也加几个按钮:

三个功能页面已经加了,这个时候执行打包命令发现没什么用,打包的还是三个index文件。我们需要修改webpack.config.js文件,首先修改入口(entry),给每个ts文件都加上:

下一步,修改插件配置,将三个新的html文件也加入进去:

这个时候,执行 npm run build  会报错,

原来每个html文件打包进去时,都有一个默认的文件名字index.html,这里需要给每个页面赋予它原来的名字,需要加上filename配置字段:

这时候执行打包命令,可以看到成功都打包进去了:

其中,js文件和css文件都没有问题,打开html文件发现引入的内容有问题,几乎每个html都引入了所有的js和css:

其余不再展示。这样显然是不行的。这时候我们需要在每个 HtmlWebpackPlugin插件的配置中,配置一下入口(entry),这样每个html才能找到自己的依赖:

chunks字段配置的就是entry的名字。现在打包就可以发现html引入的css和js文件都正常了。

现在还有一个问题,就是所有的文件都挤在dist文件夹下面,最好能按照开发目录那样分别放置,这时候需要修改一下output的配置:

其中[name]占位符表示entry的名字,这样可以把js文件打包到不同的文件夹下面:

css文件也需要打包到不同的文件,修改一下MiniCssExtractPlugin插件:

html文件也可以打包到不同文件夹中去,只需要修改HtmlWebpackPlugin插件的filename字段,加上路径即可:

现在打包基本就是我们要的效果:

index.html我习惯放在了外面。

这时候访问这几个页面能看到效果:

下面来实现跳转流程,先看index页面,有三个按钮:

这三个按钮分别是跳转到其它三个页面的,我们绑定它的click事件直接跳转,先看一下跳转到登录页面:

document.querySelector是一个选择器,这里根据id选择了toLogin按钮,下面的 addEventListener 是在按钮是加了一个click事件,表示点击时执行  location.assign() 代码,这个方法表示直接跳转到一个新的页面。

下面再给其它两个按钮也加上调整,以下是整体代码:

再来看一下其它三个ts文件的代码:

其中,history.go(-1);代码表示返回到上一页。

现在多个入口文件和调整流程已经完成了,可以自行启动测试。

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

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

相关文章

【.net core】使用nssm发布WEB项目

nssm下载地址:NSSM - the Non-Sucking Service Manager 配置方式 修改服务在nssm工具下输入命令:nssm edit jntyjr 其中 jntyjr为添加服务时设置的Service name nssm可以设置任何以参数启动的应用程序以服务形式启动,通过设置参数内容启动服务 以上配置等同于执行…

ReferenceError: primordials is not defined错误解决

问题场景: 从github上拉了一个项目,想要学习一下,在起服务的时候出现了这个问题。 造成的原因: gulp 与 node 版本起冲突。 1)首先,安装 gulp,查看版本; npm install gulp -g g…

如何设计科研问卷?

问卷研究法的最大特点在于能在较短时间内调查很多研究对象取得大量的资料,并能对资料进行数量化处理,经济省时,因此是教育研究中使用频率较高、用途较广泛的一种研究方法。问卷研究法的关键在于设计一份信度、效度较高,内容合理的…

二维码怎么分解成链接?线上快速解码教学

怎么分解二维码呢?有些时候我们需要将二维码图片分解成链接使用,所以想要使用解码功能一般都需要通过二维码生成器工具来完成。那么如何在线将二维码分解成链接呢,可能有些小伙伴还不知道怎么操作,下面就给大家分享一下免费二维码…

较真儿学源码系列-PowerJob时间轮源码分析

PowerJob版本:4.3.2-main。 之前分析过PowerJob的启动流程源码,感兴趣的可以查看《较真儿学源码系列-PowerJob启动流程源码分析》 1 简介 试想一下,如果此时有一个需要延迟3s执行的任务,你会怎么实现呢?一种常规的思路…

洗地机哪个牌子好用又实惠?口碑最好的洗地机推荐

智能技术飞速发展的时代,扫地机器人这类智能家电其实也在顺应潮流和用户需求,不断更新迭代。暂且不说市面上现有多少个洗地机品牌,单单一个洗地机品牌旗下,其实每年都会有多个系列的新品亮相,我们面对的选择多了&#…

Python交叉验证实现

目录 <font colorblue size4 face"楷体">HoldOut 交叉验证<font colorred size4 face"楷体">K 折交叉验证<font colorblue size4 face"楷体">分层 K 折交叉验证<font colorblue size4 face"楷体">Leave P Out…

融云 CallPlus + X,通话场景一站式解决方案

融云近期上线的 CallPlus SDK&#xff0c;针对音视频呼叫场景单独设计后端服务 Call Server&#xff0c;信令延时低至 150ms&#xff0c;确保各端计时准确、一致&#xff1b;上线了音视频通话互转、灵活的多人通话、通话记录管理能力等功能。关注【融云全球互联网通信云】了解更…

掌动智能兼容性测试有哪些优势

兼容性测试为企业带来市场竞争优势&#xff0c;并提高用户满意度。在软件开发过程中&#xff0c;将兼容性测试作为一个重要的环节&#xff0c;将为企业的成功和用户满意度打下坚实的基础。那么&#xff0c;掌动智能兼容性测试的具体优势是什么?下面&#xff0c;就来看看具体介…

【面试题】说说你对 async和await 理解

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 async await详解 原理&#xff1a; async声明该函数是异步的&#xff0c;且该函数会返回一个…

比例导引详解(Proportional navigation guidance,PNG)-及Python程序

模型算法推导 比例导引是一种制导算法&#xff0c;其经典程度相当于控制器中的PID&#xff0c;在本文中&#xff0c;只对其二维平面的情况做分析&#xff0c;考虑一个拦截弹拦截机动目标&#xff08;固定目标相当于目标速度为0&#xff09;&#xff0c;其运动如下图所示&#…

变配电智能化系统:提高效率与安全性

随着科技的发展&#xff0c;电力系统正在逐步向智能化、数字化方向转型。变配电系统作为电力系统的重要组成部分&#xff0c;其智能化水平直接影响着电力系统的运行效率和稳定性。 一、系统概述 力安科技变配电智能化系统是一种采用先进技术&#xff0c;实现对变配电设…

DD5 进制转换

目录 一、题目 二、分析 三、代码 一、题目 进制转换_牛客题霸_牛客网 二、分析 三、代码 #include <iostream> #include <vector> #include <string> using namespace std; string Greater_than_Ten(int digit)//余数大于等于10的时候转换成对应的字母…

低照度增强算法(图像增强+目标检测+代码)

本文介绍 在增强低光图像时&#xff0c;许多深度学习算法基于Retinex理论。然而&#xff0c;Retinex模型并没有考虑到暗部隐藏的损坏或者由光照过程引入的影响。此外&#xff0c;这些方法通常需要繁琐的多阶段训练流程&#xff0c;并依赖于卷积神经网络&#xff0c;在捕捉长距…

从零搭建开发脚手架 顺应潮流开启升级 - SpringBoot 从2.x 升级到3.x

文章目录 涉及升级项导入包修改SpringBoot3.x中spring.factories功能被移除 涉及升级项 升级JDK 8 -> JDK17 Spring Boot 2.3.7 -> Spring Boot 3.1.3 Mysql5.7.x -> Mysql8.x Mybatis-Puls 3.4.2 -> 3.5.3 knife4j 2.x -> 4.3.x sa-token 1.24.x -> 1.…

Apache Derby的使用

Apache Derby是关系型数据库&#xff0c;可以嵌入式方式运行&#xff0c;也可以独立运行&#xff0c;当使用嵌入式方式运行时常用于单元测试&#xff0c;本篇我们就使用单元测试来探索Apache Derby的使用 一、使用IDEA创建Maven项目 打开IDEA创建Maven项目&#xff0c;这里我…

C++: 模板(进阶)

学习目标 1.了解非类型模板参数 2.了解类模板的特化 3.知道模板分离编译会出现的问题 1.非类型模板参数(整型常量) 模板参数: 1.类型形参:在模板参数列表中,class/typename后的参数名称 2.非类型形参:整型常量 示例: template<class T ,size_t N>class arr{public://....…

Docker和Docker compose的安装使用指南

一&#xff0c;环境准备 Docker运行需要依赖jdk&#xff0c;所以需要先安装一下jdk yum install -y java-1.8.0-openjdk.x86_64 二&#xff0c;Docker安装和验证 1&#xff0c;安装依赖工具 yum install -y yum-utils 2&#xff0c;设置远程仓库 yum-config-manager --add-r…

什么是AI问答机器人?它的应用场景有哪些?

近年来&#xff0c;由于技术的进步和对个性化客户体验的需求不断增长&#xff0c;AI问答机器人也是获得了巨大的关注。AI问答机器人&#xff0c;也被称为AI聊天机器人&#xff0c;是一种旨在模拟人类对话并通过基于文本或语音的界面与用户交互的计算机程序。其能够自动执行各种…

idea Springboot在线商城系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 在线商城系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有 完整的源代码和数据库&…