前端开发_注意事项

无论使用哪种框架开发(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://xiahunao.cn/news/3250498.html

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

相关文章

VScode:前端项目中yarn包的安装和使用

一、首先打开PowerShell-管理员身份运行ISE 输入命令: set-ExecutionPolicy RemoteSigned 选择“全是”,表示允许在本地计算机上运行由本地用户创建的脚本,没有报错就行了 二、接着打开VScode集成终端,安装yarn插件 输入 npm ins…

新版本 idea 创建不了 spring boot 2 【没有jkd8选项】

创建新项目 将地址换成如下 https://start.aliyun.com/

vue this.$refs 动态拼接

业务需要&#xff0c;refs是不固定的 <vxe-grid refgridWarehouse v-bind"gridWarehouseOptions" v-if"tableHeight" :height"tableHeight":expand-config"{iconOpen: vxe-icon-square-minus, iconClose: vxe-icon-square-plus}"c…

Filebeat k8s 部署(Deployment)采集 PVC 日志发送至 Kafka——日志处理(二)

文章目录 前言Filebeat Configmap 配置Filebeat Deployment验证总结 前言 在上篇文章中总结了 Django 日志控制台输出、文件写入按天拆分文件&#xff0c;自定义 Filter 增加 trace_id 以及过滤——日志处理&#xff08;一)&#xff0c;将日志以 JSON 格式写入日志文件。我们的…

object-C 解答算法:移动零(leetCode-283)

移动零(leetCode-283) 题目如下图:(也可以到leetCode上看完整题目,题号283) 解题思路: 本质就是把非0的元素往前移动,接下来要考虑的是怎么移动,每次移动多少? 这里需要用到双指针,i 记录每次遍历的元素值, j 记录“非0元素值”需要移动到的位置; 当所有“非0元素值”都移…

【IC前端虚拟项目】reference model编写与合入

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 本来按照规划,这一篇应该写ral model的生成与合入,不过因为前面在这一篇文章中已经介绍了mvu的寄存器体系: 【IC前端虚拟项目】MVU寄存器文档编写与RTL代码生成-CSDN博客文章浏览阅读209次。那可就多…

VLAN 划分案例详解

vlan 的应用在网络项目中是非常广泛的&#xff0c;基本上大部分的项目都需要划分 vlan&#xff0c;这里从基础的 vlan 的知识开始&#xff0c;了解 vlan 的划分原理。 为什么需要 vlan&#xff1a; 1、什么是 VLAN&#xff1f; VLAN&#xff08;Virtual LAN&#xff09;&…

MySQL练习01

题目 步骤 创建数据库 create database mydb6_product; #创建数据库 use mydb6_product; #使用数据库 创建表 employees表 create table employees(id int primary key,-> name varchar(50) not null,-> age int,-> gender varchar(10) not null default&qu…

开关电源中的局部放电

一、局部放电现象 局部放电&#xff08;partial discharge&#xff0c;简称PD&#xff09;现象&#xff0c;通常主要指的是高压电气设备绝缘层在足够强的电场作用下局部范围内发生的放电&#xff0c;某个区域的电场强度一旦达到其介质击穿场强时&#xff0c;该区域就会出现放电…

牛客TOP101:链表中环的入口结点

文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 3. 代码实现 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {} }; */ class Solution { public:ListNode* hasCycle(ListNode *head) {if(head nullptr) retu…

Python 工程师对 3D 高斯溅射的介绍(第 2 部分)

理解并编码如何在 3D 高斯溅射中使用高斯 欢迎来到雲闪世界现在开始讨论高斯&#xff01;这是每个人最喜欢的分布。如果您刚刚加入我们&#xff0c;我们已经在第1 部分中介绍了如何根据相机的位置获取 3D 点并将其转换为 2D 。在本文中&#xff0c;我们将讨论高斯分布的高斯部分…

口袋奇兵游戏攻略:云手机辅助战锤入侵策略指南!

在《口袋奇兵》中&#xff0c;战锤入侵是一个重要的游戏环节&#xff0c;了解如何有效地参与战锤入侵能够帮助玩家获取更多的资源和提升自己的战力。本文将详细介绍战锤入侵的策略和技巧&#xff0c;帮助玩家在战锤入侵活动中取得更好的成绩。除了找到强力的游戏辅助&#xff0…

【JVM】JVM调优练习-随笔

JVM实战笔记-随笔 前言字节码如何查看字节码文件jclasslibJavapArthasArthurs监控面板Arthus查看字节码信息 内存调优内存溢出的常见场景解决内存溢出发现问题Top命令VisualVMArthas使用案例 Prometheus Grafana案例 堆内存情况对比内存泄漏的原因:代码中的内存泄漏并发请求问…

vmware配置centos+配置静态ip联网+更换镜像

centos7配置参考【实战】VMware17虚拟机以及Centos7详细安装教程-CSDN博客 ip配置步骤&#xff1a; 先更改编辑虚拟网络编辑器中的内容 就按照还原默认设置来&#xff0c;设定后就是以上内容&#xff0c;然后一定要记住子网ip和子网掩码 接下来就是NAT设置&#xff1a; 网关…

国产麒麟、UOS在线打开pdf加盖印章

PageOffice支持两种电子印章方案&#xff0c;可实现对Word、Excel、PDF文档加盖PageOffice自带印章或ZoomSeal电子印章&#xff08;全方位保护、防篡改、防伪造&#xff09;。Word和Excel的盖章功能请参考&#xff1a;Word和Excel加盖印章和签字功能 &#xff08;目前只支持win…

PHP pwn 学习 (2)

文章目录 A. 逆向分析A.1 基本数据获取A.2 函数逆向zif_addHackerzif_removeHackerzif_displayHackerzif_editHacker A.3 PHP 内存分配 A.4 漏洞挖掘B. 漏洞利用B.1 PHP调试B.2 exp 上一篇blog中&#xff0c;我们学习了一些PHP extension for C的基本内容&#xff0c;下面结合一…

磷酸制备除杂,提高磷酸纯度的工艺

在化肥生产领域&#xff0c;磷酸作为一种关键的生产原料&#xff0c;其纯度对化肥的品质和性能有着直接的影响。然而&#xff0c;在实际生产过程中&#xff0c;磷酸原料中常常含有各种杂质&#xff0c;如金属离子、有机物等&#xff0c;这些杂质的存在会严重影响磷酸的纯度&…

如何在web页面下做自动化测试?

自动化测试是在软件开发中非常重要的一环&#xff0c;它可以提高测试效率并减少错误率。在web页面下进行自动化测试&#xff0c;可以帮助我们验证网页的功能和交互&#xff0c;并确保它们在不同浏览器和平台上的一致性。本文将从零开始&#xff0c;详细介绍如何在web页面下进行…

MySQL相关知识

一、什么是数据库&#xff1f; 数据库&#xff08;Database&#xff0c;简称DB&#xff09;概念&#xff1a; 长期存放在计算机内&#xff0c;有组织、可共享的大量数据的集合&#xff0c;是一个 数据“仓库”。 二、数据库的特点&#xff1a; 1.结构化&#xff1a;数据在数…

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中&#xff0c;通过SSH&#xff08;Secure Shell&#xff09;连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题&#xff0c;可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…