前端开发_注意事项

无论使用哪种框架开发(vue、react、...),前端开发终究是结构(HTML)、样式(CSS)、逻辑+(用户操作+数据处理+对接后端API)。那么开发过程中都需要注意哪些事项,本文总结一下。

一、静态样式

开发过程中一定要提取公共组件,封装时注意通用性(结构有少量区别,就定义一些属性,进行控制)。封装出来的组件既可以锻炼我们的代码能力,也可以减少后续工作量。

如果后续需要进行更改,只需要更改组件即可,不用改很多个页面了。有一些基础组件有现成的UI库例如(element-ui、antd、...)但是有时结构样式和UI设计冲突太大,在这个基础上改样式,有时不了解他的结构,一个一个样式的更改也很麻烦,不如自己花些时间封装一个,改起来也很简单。

1.结构(HTML)

写结构的时候有哪些重点:

        常用标签的默认属性需要了解,比如 div 的 display 默认是 block ,占用整行。span 标签默认 display 是 inline ,此时设置宽高无效,可以把 span 的 display 设置为 inline-block 即可又不占用整行,又可以设置宽高。

        input 的所有 type 类型需要熟练,都是常用的,可以自行封装一些组件,搜索框、多选等。

        一些规则,比如 tr 标签不能嵌套在 div 里面。

2.样式(CSS)

无论用 scss 、less 、stylus ,只是多了一些方便程序员的写法和函数,用的还是 css 本身。学会css本身属性,学会 scss 、less 、stylus ,的简便写法以及minxin ,加快开发速度。

拿到UI设计后,我们最需要做的事:

提取公共的变量,字大小颜色、通用的按钮样式、主题色。其实就是做主题,不仅让我们开发时减少代码量,而且方便后期项目主题更改。

写样式时一些注意事项:

        像按钮这种通用样式,不要设置宽度,用padding,这样不管多少字,样式一样。

        例如:

.button-same-style{padding: 2px 15px;height: 34px;line-height: 34px;text-align: center;border-radius: 6px;background: #00B498;color: #FFF;cursor: pointer;
}

效果如下:

                    

        定位方式必须牢牢掌握,position 的几个属性值,熟练运用。比如弹窗都需要使用 fixed 去定位。

        对于伪类选择器必须熟练,hover、active 、active 、focus 等,需熟练运用。

        响应式布局和移动端适配必须会。电脑有大小屏,手机屏幕也不同。这些必须牢牢掌握。了解清楚屏幕适配时哪些部分随着大小屏改变。

        例一:项目PC端网页,如果设计图两侧有留白(就是没有实际内容,只有一些背景图),那么这个区域,会随着屏幕变小,进行减小直到消失。而后台管理系统,没有留白,那么大小屏适配都需要铺满屏幕,但字号不变,这时需要将主体内容做成弹性的。比如主题内容是一个表格,那就是大屏时表格间距变大,小屏时变小。表格按照百分比设置宽度即可。

        例二:移动端则需要根据UI设计稿的宽度,改变跟字体大小,使用 rem 去适配。

        不同浏览器因为内核不同,存在一些默认样式,所以做项目第一件事,清除默认样式,例如:

*{
margin:0;
padding:0;
}

也需要解决浏览器适配性问题,是指由于不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。使用不同浏览器(Firfox、Chrome、IE6、IE7等)访问同一个网站或者页面时候,显示混乱便是不兼容。使用css hack ,去解决这个问题:

/*Mozilla内核浏览器:firefox3.5+*/-moz-transform: rotate | scale | skew | translate ;
/*Webkit内核浏览器:Safari and Chrome*/-webkit-transform: rotate | scale | skew | translate ;
/*Opera*/-o-transform: rotate | scale | skew | translate ;
/*W3C标准*/transform: rotate | scale | skew | translate ;

二、逻辑(javascript)

1.用户操作

不要一个函数写了所有逻辑,每个小功能写成一个函数,进行调用。这样逻辑更清晰,后期好更改。有些方法一样,一定要提取封装为通用的函数,进行调用,不要重复多次。

对于常用的HTML事件必须牢牢掌握:

 以及页面监听也需要会,addEventListener是DOM元素对象的一个方法,在JavaScript中可用于给元素添加事件监听器。

element.addEventListener(event, callback, useCapture);

2.对接API

一定要先确定接口是否能跑通,参数是否有问题。

同一个局域网访问,使用浏览器确认一下,如果在服务器则使用 postman  试一下接口。

有些数据通用,则请求一次接口,保存数据在本地。不要发很多次请求。

了解接口的状态码代表的含义,也就是HTTP请求的结果:

        1xx - 信息响应:这些状态码表示临时的响应,等待客户端继续操作。

        2xx - 成功:这类状态码表示客户端的请求被成功接收、理解和接受。

        3xx - 重定向:客户端需要采取进一步的操作才能完成请求。

        4xx - 客户端错误:这类状态码表示客户端似乎有错误,例如,请求信息有误或请求无法执。

        5xx - 服务器错误:这类状态码表示服务器在尝试处理请求时内部出错或者无法完成请求。

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

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

相关文章

设计模式:使用最广泛的代理模式

需求场景 按着惯例,还是以一个应用场景作为代理模式的切入点。现在有一个订单系统,要求是:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。 基本实现思路 按着最直白的思路,就是查询数据…

IDEA中内敛局部变量对话窗是什么?

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

mmaction输出tensorboard日志

参考文档: 从 MMAction2 0.x 迁移 — MMAction2 1.2.0 文档 修改mmaction2/configs/_base_/default_runtime.py,将代码: vis_backends [dict(typeLocalVisBackend)]改为: vis_backends [dict(typeLocalVisBackend), dict(ty…

juicefs 一致性

1. 多客户端并发读写一致性 并发写场景 对于同一个chunk不可机器client的并发写,后写的会覆盖之前写的;元数据更新是事务更新,数据更新是写时复制(不覆盖) 对于跨chunk的不同机器client的并发写,juicefs本身…

华为OD机试D卷 --快速人名查找--24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析java源码js源码python源码c源码c++源码题目描述 给一个字符串,表示用’,’分开的人名。 然后给定一个字符串,进行快速人名查找,符合要求的输出。 快速人名查找要求︰人名的每个单词的连续前几位能组成给定字符串,一定要用…

sip对话(dialog)、sip会话(session)、sip call-leg的区别和联系

一.sip对话和sip会话的区别和联系 1. 区别 1)定义和范围: 对话(Dialog):对话是指两个SIP用户代理(User Agent,UA)之间通过SIP消息交换建立的端到端的SIP关系。这种关系…

Kotlin实现SHA-256哈希和RSA签名

1. 对一段原始字符串,实现SHA 哈希签名,即hashMessage; 2. 用私钥key 对SHA后的字符串信息签名,即signatureMessage; 3. 用公钥key验证私钥签名的信息(私钥签名的原始字符串是SHA-256哈希的字符串&#x…

GitHub介绍

GitHub 是一个基于 Git 的在线代码托管平台,用于版本控制和协作。下面是一些常用的 Git 命令,这些命令可以帮助你在本地和 GitHub 之间管理和同步代码仓库: 初始化和配置 初始化本地仓库 git init这将在当前目录下创建一个新的 Git 仓库。 …

Debezium日常分享系列之:Debezium2.7版本PostgreSQL数据库连接器

Debezium日常分享系列之:Debezium2.7版本PostgreSQL数据库连接器 一、概述二、连接器的工作原理安全快照初始快照的默认工作流程行为临时快照触发临时增量快照触发临时阻塞快照增量快照增量快照流程Debezium 如何解决具有相同主键的记录之间的冲突快照窗口触发增量快照具有附加…

FPGA文档阅读

FPGA的文档没有相应的基础还真不容易看懂,下面是B站上对FPGA文档的解读(本文非对文档解读,只是为个人记录第三期:CycloneIV E最小系统板设计(一)从Datasheet上获取FPGA的基本参数_哔哩哔哩_bilibili 电源部份 核心电…

算法力扣刷题记录 五十二【617.合并二叉树】

前言 二叉树篇,继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要…

C语言 杂项笔记

这一篇需要修改 todo C语言知识点 在函数中, 传入一个字符串: 使用字符数组: void getLength(char name[])使用指针: void getLen(char *name) 一个中文字符, 在UTF-8编码中占用3个字节 sizeof() 是一运算符, 返回的单位是字节 sleep(1);…

19-2 LLM之野望 2 - LLM给到Quora面临的困境

Quora 有一个简单的前提:它是一个分享知识和专业知识的地方,好奇的人可以就任何可以想象到的话题提出问题,并从平台博学的社区获得深思熟虑的、见识广博的答案。 想想雅虎答案 (Yahoo Answers),它适用于技术员工和格拉德威尔式的…

农业旅游与乡村旅游:融合绿色田野与诗意远方的经济新篇章

在这个快节奏的时代,人们对于回归自然、体验淳朴生活的渴望日益增强。农业旅游与乡村旅游,作为新兴的旅游形态,正逐步成为连接城市与乡村的桥梁,不仅为都市人提供了一片心灵的栖息地,也为农村地区带来了前所未有的发展…

springboot集成MQTT实现消息接收

MQTT介绍 简单来说MQTT是一种协议&#xff0c;用来解决物联网之间的数据传输&#xff0c;它功耗更低&#xff0c;稳定性也不错&#xff0c;现在很多物联网的设备都在使用mqtt。感兴趣可以查看详情中文介绍 SpringBoot集成Mqtt 引入pom文件 <dependency><groupId&g…

xhdra的使用记录

XHydra是一个基于Hydra的分布式密码破解工具&#xff0c;用于进行暴力破解攻击。以下是在Kali Linux中使用XHydra的完整步骤和命令&#xff0c;以及一个示例&#xff1a; 安装XHydra&#xff1a; 在Kali Linux中&#xff0c;XHydra通常已经预装在系统中。如果没有安装&#xff…

Python3.4.4 32位

Python 3.4.4是Python编程语言的一个稳定版本&#xff0c;发布于2015年&#xff0c;主要针对32位操作系统设计。对于那些仍然运行Windows XP的用户来说&#xff0c;这是他们可以安装的最高版本的Python&#xff0c;因为从Python 3.5开始&#xff0c;官方停止了对Windows XP的支…

L298N的输出电流与电压

一、L298N的电流输出范围 L298N的输出电流为2A&#xff0c;瞬间峰值电流可达4A。 L298N是一款意法半导体生产的双路全桥式电机驱动芯片&#xff0c;广泛应用于各种电子和机械控制项目中&#xff0c;如驱动继电器、电磁阀、直流电机和步进电机等。其输出电流之所以重要&#x…

Jenkins及其相关插件的具体流程

目录 一、安装Jenkins二、配置Jenkins三、创建项目并配置构建任务四、运行和监控构建任务五、维护和优化 一、安装Jenkins 下载Jenkins安装包&#xff1a; 访问Jenkins官方网站&#xff08;https://www.jenkins.io/&#xff09;下载页面&#xff0c;选择合适的安装包。对于Linu…

Apache BookKeeper 一致性协议解析

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案&#xff0c;支持多租户、低延时、读写分离、跨地域复制&#xff08;GEO replication&#xff09;、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件&#xff0c;所以本文简单探讨一下 BookK…