前端开发_注意事项

news2024/11/16 0:45:03

无论使用哪种框架开发(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.coloradmin.cn/o/1935351.html

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

相关文章

【单片机毕业设计选题24072】-基于单片机的智能停车场管理系统

系统功能: 1.根据RFID卡卡号判断新老用户,老用户不计费直接放行,新用户放行时显示计费结果 2.显示屏显示车位剩余数量 3.检测车位有车亮红灯,无车亮绿灯,能够实现车位诱导 5.车辆出停车场时,能根据停车时间计算停车…

大数据采集工具——Flume简介安装配置使用教程

Flume简介&安装配置&使用教程 1、Flume简介 一:概要 Flume 是一个可配置、可靠、高可用的大数据采集工具,主要用于将大量的数据从各种数据源(如日志文件、数据库、本地磁盘等)采集到数据存储系统(主要为Had…

计算机课设——基于Java web的超市管理系统

smbms_java_web 基于Java web的超市管理系统,数据库课程设计 1.引言 是一个基于Java Web连接MySQL的小项目。 超市管理系统(smbms)作为每个计算机专业的大学生都是一个很好的练手项目,逻辑层次分明,基础功能包括用户的登录和注销&#xff…

云手机结合自主ADB命令接口 提升海外营销效率

现在,跨境电商直播已经成为在线零售的重要渠道,在大环境下,确保直播应用的稳定性和用户体验至关重要。 云手机支持自主ADB命令接口,为电商直播营销提供了技术支持,使得应用开发、测试、优化和运维更加高效。 什么是A…

鸿蒙语言基础类库:【@system.sensor (传感器)】

传感器 说明: 从API Version 8开始,该接口不再维护,推荐使用新接口[ohos.sensor]。本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。该功能使用需要对应硬件支持,仅支持…

什么是信息指纹和信息加密——《数学之美》第16、17章以及其他各种资料的读书笔记

目录 1. 信息指纹 1.1 概念 1.2 相关算法的演进历程 1.3 哈希碰撞 1.4 雪崩效应 1.5 应用场景 2. 信息加密 2.1 密码学的简要历史 2.1.1 古代密码学:智慧的萌芽 2.1.2 中世纪至文艺复兴:密码术的兴起 2.1.3 近代密码学:机械密码机的…

【python函数】string和json的互转函数封装

我是一名测试开发工程师(全栈),作品有全终端自动化测试框架wyTest,未羽研发测试管理平台,欢迎同行交流。 一、主要涉及2个方法: json.loads:将字符串转换成JSONjson.dumps:将JSON转…

Apache BookKeeper 一致性协议解析

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

接口开发:Orcal数据库的批量修改sql

场景:在日常的CURD中一定会用到批量修改。在我们的项目中,使用的数据库是Orcal,由于之前基本都是使用Mysql的,使用的sql语句也基本都是用mysql的。但是在这次的接口编写时用mysql的批量修改出了问题,刚开始我还以为是写…

高频面试题-CSS

BFC 介绍下BFC (块级格式化上下文) 1>什么是BFC BFC即块级格式化上下文,是CSS可视化渲染的一部分, 它是一块独立的渲染区域,只有属于同一个BFC的元素才会互相影响,且不会影响其它外部元素。 2>如何创建BFC 根元素,即HTM…

浅谈端到端(自动驾驶)

一、 引言 端到端是近期非常火的话题,尤其在自动驾驶、具身智能等领域。去年UniAD的发布,给大家普及了端到端的网络设计,带动了行业的发展。产业界,特斯拉FSD Beta V12效果惊艳,近期理想也推出了双系统的E2E自动驾驶系…

qml 实现一个listview

主要通过qml实现listvie功能&#xff0c;主要包括右键菜单&#xff0c;滚动条&#xff0c;拖动改变内容等&#xff0c;c 与 qml之间的变量和函数的调用。 main.cpp #include <QQuickItem> #include <QQmlContext> #include "testlistmodel.h" int main…

(自用)高性能网络编程

Epoll - Reactor 设计模式 以餐厅大点餐为例 Reactor优点 Epoll - IO多路复用 1.创建EPOLL 句柄 相关函数 epoll_create #include <sys/epoll.h>int epoll_create(int size); 作用&#xff1a; 创建一个 epoll 实例 参数: size 参数用于指定 epoll 实例中管理的…

MongoDB教程(十二):MongoDB数据库索引

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、MongoD…

vue3前端开发-小兔鲜项目-图片懒加载的自定义标签

vue3前端开发-小兔鲜项目-图片懒加载的自定义标签&#xff01;很多大型网站&#xff0c;因为首页面渲染的内容太多了&#xff0c;然而有些用户&#xff0c;可能在顶部就发现了自己感兴趣的内容&#xff0c;直接就点击跳转去了其他页面&#xff0c;因此&#xff0c;完全没有必要…

Spring纯注解开发

前言 Spring3.0引入了纯注解开发的模式&#xff0c;框架的诞生是为了简化开发&#xff0c;那注解开发就是简化再简化。Spring的特性在整合MyBatis方面体现的淋漓尽致哦 一.注解开发 以前跟老韩学习SE时他就说&#xff1a;注解本质是一个继承了Annotation 的特殊接口,其具体实…

Apache SeaTunnel——OLAP 引擎的数据动脉

导读本文将分享如何利用 Apache SeaTunnel 将各个业务系统的数据同步到 OLAP 引擎。 主要内容包括以下六大部分&#xff1a; 1. Apache SeaTunnel 项目介绍 2. Apache SeaTunnel 核心功能 3.SeaTunnel 在 OLAP 场景下的应用 4. 社区近期计划 5. WhaleTunnel 产品特性 6. …

【框架】PHP框架详解-symfony框架

目录 一、框架概述 二、核心组件 三、特点与优势 四、开发流程 新机制 层次 网络应用框架 包涵观念 兼容的数据库 结构 开发环境捆绑 应用开源项目 公共特性 Symfony是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维…

VS2019+CMake+Vtk9.3.0+Qt5.14.2 配置

VS2019CMakeVtk9.3.0Qt5.14.2 配置环境 第一步 下载 基本配置 系统环境&#xff1a;windows11 x64 Qt&#xff1a;5.14.2 这是最后最新的LTS qt离线版本&#xff0c;后续版本都需要在线安装&#xff0c;同时使用qt5.14也避免版权问题。 Qt 5.14&#xff1a;大部分模块基于LG…

去中心化技术的变革力量:探索Web3的潜力

随着区块链技术的发展和应用&#xff0c;去中心化技术正成为数字世界中的一股强大变革力量。Web3作为去中心化应用的新兴范式&#xff0c;正在重新定义人们对于数据、互联网和价值交换的认知。本文将探索去中心化技术的基本概念、Web3的核心特征及其潜力应用&#xff0c;展示其…