react 开发实战

CSS:
选择器用法:
.类名 //类选择器

id名 //id 选择器

.类名 元素名 //后代选择器,包含子元素和子元素的子元素
.类名>元素名 //子元素选择器,只包含子元素
&类名 //夫选择器,选择 &+类名 的全部元素

Less:
变量:
@width: 10px;
@height: @width + 10px;

header {

width: @width;
height: @height;
}

混合:
.bordered {
border-top: dotted 1px black;
border-bottom: solid 2px black;
}

menu a {

color: #111;
.bordered();
}
.post a {
color: red;
.bordered();
}

嵌套:

header {

color: black;
}

header .navigation {

font-size: 12px;
}

header .logo {

width: 300px;
}
可改写为:

header {

color: black;
.navigation {
font-size: 12px;
}
.logo {
width: 300px;
}
}

CSS:

设置一个元素覆盖在另一个元素之上:
z-index:-1;

设置元素相对于父视图水平居中:
margin: auto;

设置元素相对于父视图垂直居中:
首先给父视图一个固定高度:
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
子视图设置居中:
{
position: relative; /设置position属性/
top: 50%; /相对于父视图偏移父视图高度的 50%/
transform: translateY(-50%);/相对于自己的高度向上偏移50%/
}

js:

html:
组件的首字母必须大写,否则会不显示

其他:
index.js 是每个文件夹默认的入口文件
index.js 里可以直接写页面的代码,不需要新建整体页面

编码规范:
前端规范
(一)HTML规约
1.【强制】HTML元素标签一律小写。
2.【强制】HTML元素都必须正确结束。
3.【强制】不得为id、class选择器添加类型选择器进行限定。
4.【推荐】选择器的嵌套层级应不大于3级,位置靠后的限定条件应尽可能精确。
5.【推荐】尽量不在HTML中直接使用STYLE。
说明:多数情况下,页面中直接使用STYLE,会导致样式不易管理、不能复用,并会使页面结构较乱,因此不建
议在页面中直接使用STYLE。
6.【推荐】合理运用多种HTML标签、标签语义化
说明:
每一种HTML标签均有其使用场景,应该灵活的在不同场景下使用适当的标签,例如显示无序列表时,使用ul更
加合理,而不是在任何时候,仅仅使用div、a等几种标签;
不要使用纯样式标签,如b(文本加粗)、font(规定字体格式)、u(下划线文本)、i(规定斜体文本)等,使用css代替;
此外,标签的合理使用,会使得页面结构更加清楚;
(二)CSS编码规约
1.【强制】页面的私有样式必须包含在页面的私有样式命名空间里面,私有样式必须
全部小写,以下划线“_”分割单词,尽量使用有意义的单词命名,例如:
“meesage_title”。
2.【强制】公共样式必须包含在公共样式文件中,统一以中划线“-”分割。
3.【推荐】属性书写顺序:
按功能进行分组,并以FormattingModel(布局方式、位置)>BoxModel(尺寸)>Typographic(文本
相关)>Visual(视觉效果)的顺序书写,以提高代码可读性。
FormattingModel相关属性包括:position/top/right/bottom/left/float/display/overflow等
BoxModel相关属性包括:border/margin/padding/width/height等
Typographic相关属性包括:font/line-height/text-align/word-wrap等
Visual相关属性包括:background/color/transition/list-style等
4.【强制】0和单位,省略0后面的单位,省略0开头小数点前面的0。
.test{
margin:0;
padding:0;
font-size:.8em;
}
5.【强制】长度为0时须省略单位。(也只有长度单位可省)。
正例:body{padding:05px;}//
反例:body{padding:0px5px;}//
6.【强制】RGB颜色值必须使用十六进制,全小写形式。不允许使用rgb()。带有alpha
的颜色信息可以使用rgba()。
7.【强制】颜色值可以缩写时,必须使用缩写形式。
正例:.success{background-color:#aca;}//
反例:.success{background-color:#aaccaa;}//
8.【强制】最好使用CSS预处理器,比如SCSS.
9.【强制】保持你的CSS选择器简短。
10.【强制】CSSclass命名时应该描述内容,而不是外观。
正例:class=“danger”
反例:class=“red“
11.【强制】声明完结,所有声明都要用“;”结尾。
正例
.test{
display:block;
height:100px;
}
反例
.test{
display:block;
height:100px
}
12.【强制】将您的样式与HTML代码解耦,即行为与表现分离,严格保持结构(标记),
表现(样式),和行为(脚本)分离,并尽量让这三者之间的交互保持最低限度。
13.【强制】属性选择器或属性值用双引号(“”),而不是单引号(“)括起来。
14.【强制】URI值(url())不要使用引号。
15.【推荐】一般情况下ID不应该被用于样式,并且ID的权重很高,所以不使用ID解决
样式的问题,而是使用class。
正例
.content>.title{
font-size:2em;
}
反例

content>.title{

font-size:2em;
}
16.【建议】尽量少用选择器。
17.【严禁】使用内联样式
说明:
对开发者来说,样式与html分离,有助于后期更改一个新的样式(也可以说新的主题,很多ui框架都是直接切
换主题的)
对浏览器来说,样式文件由于是单独文件,可以在本地建立一个缓存,有利于加快访问网页。
对服务器来说,如果样式文件浏览器减少加载,那么服务器就可以减少下载流量,可以节约服务器带宽。
(三)JavaScript编码规
1.【强制】变量命名规范
驼峰式命名,驼峰式命名法由小写字母开始,后续每个单词首字母都大写。
命名方法:小驼峰式命名法。
命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数)。
命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字
符串类型。
正例
varmaxCount=10;
vartableTitle='LoginTable';
反例
varsetCount=10;
vargetTitle='LoginTable';
2.【强制】函数命名规范
命名方法:小驼峰式命名法。
命名规范:前缀应当为动词。
命名建议:可使用常见动词约定
例:是否可阅读
functioncanRead(){
returntrue;
}
例:获取名称
functiongetName(){
returnthis.name;
}
3.【强制】常量命名规范
命名方法:名称全部大写。
命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词。
例:
varMAX_COUNT=10;
varURL='http://www.baidu.com';
4.【强制】使用外部服务(针对Angular项目)
命名方法:下划线开头,小写字母,下划线组合。
constructor(private_http:HttpService){}
编码时一定注意写好注释,尤其JS,做到主要代码、方法、参数的行行注释说明,便于其他同事了解你做此功能
的思路,避免代码的冗余,造成性能问题,尽量做到高内聚低耦合。
//单行注释
/
*
*函数说明
*@paramid{string}:查询主键
*@returnvoid
*@authorzhangyi2018-12-19
*/
5.【强制】单一职责,一个文件只定义一个组件。
6.【强制】给独立子模块使用唯一的命名。
7.【推荐】用一个命名函数而不是通过一个匿名函数作为回调函数。
8.【推荐】使用模块时避免使用变量代替的应该是链式语法

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容