什么是前端架构?(1),让你明明白白的使用RecyclerView

为了更好的实现标记的可控化,模块化标记是最好的选择,它可以给你带来理想的灵活性和必要的自动化


 <nav class="nav">

 	<ul class="nav__container"> 

 		<li class="nav__item"> 

 			<a href="/products" class="nav__link"> 

 				<ul class="nav__container--secondary"> 

 					<li class="nav__item--secondary"> 

 						<a href="/socks" class="nav__link--secondary">



咋一看和程序式没啥区别,但它的标记却恰到好处,这种标记是根据元素而添加相应类名,不是依赖那些为了样式标签而存在的CSS类名,前者重复使用更清晰了然,后者重复使用只能说,自己也看不懂自己写的啥。

二、CSS设计

====================================================================

单一职责原则:规定创建的所有东西必须有单一的、高度聚焦的。应用到某个选择器里的样式应该是为了单一目的而创建的,并且能够很好地实现这个目标。


<div class="calendar">

 	<h2 class="calendar-header">This Is a Calendar Header</h2> 

</div> 

<div class="blog"> 

 	<h2 class="blog-header">This Is a Blog Header</h2> 

</div> 

.calendar-header { 

 color: red; 

 font-size: 2em; 

} 

.blog-header { 

 color: red; 

 font-size: 2.4em; 

}



这种方法可能会导致一些代码重复(红色字体定义了两次),但是带来的好处也超过代码重复的任何坏处。这里多出来的代码对网页大小的增加而言微不足道,如果整个项目强制执行单一责任原则,就能够确保在进一步改变时,我们可以毫不费力地完成,并且也不需要回顾之前的代码。

单一样式来源:每个 CSS 类名被创建为单一用途,而且每个标签的样式也只有单一的来源。


<div class="blog">

 	<h2 class="blog-header">This Is a Blog Header</h2> 

 ... 

<div class="blog"> 

 	<h2 class="blog-header">This Is a Blog Header</h2> 

 ... 

 <div class="calendar"> 

 	<h2 class="calendar-header">This Is a Calendar Header</h2> 

 </div> 

</div> 

/* calendar.css */ 

.calendar-header { 

	color: red; 

	font-size: 2em; 

} 

.blog .calendar-header { 

	font-size: 1.6em; 

} 

/* blog.css */ 

.blog-header { 

	color: red; 

	font-size: 2.4em; 

}



这种方法可以让我们知道所用可能变动的情况,并且能让我们为每个变动的情况创建适当的测试覆盖

组件修饰符:能够定义一个组件在多个不同情况下的多种变化。


<div class="blog"> 

 <h2 class="blog-header">This Is a Blog Header</h2> 

 ... 

 <div class="calendar calendar--nested"> 

 <h2 class="calendar-header">This Is a Calendar Header</h2> 

 </div> 

</div> 

/* calendar.css */ 

.calendar-header { 

	color: red; 

	font-size: 2em; 

} 

.calendar--nested .calendar-header { 

	font-size: 1.6em; 

} 

/* blog.css */ 

.blog-header { 

	color: red; 

	font-size: 2.4em; 

}



这种方法把修改使用到任何地方,保证了所有组件的变动都在一个文件里,能用到任何需要的地方,不依赖于不确定的父节点 CSS 类名。

三、JavaScript设计

===========================================================================

JavaScript是一种脚本语言,与HTML和CSS不同,忘记闭合一个 HTML 标签或者写了无效的 CSS,最坏的情况不过是页面上出现了一些小缺陷。如果你在 JavaScript 代码里添加了太多的逗号或者忘记闭合大括号,整个网站都有可能崩溃。

保持代码整洁:限制代码嵌套深度、限制函数的参数数量、避免函数重复定义、避免变量创建后未使用。

创造重复使用函数


$.fn.log_text_on_click = function() {

	this.on('click', function() { 

 	console.log($(this).html()); 

 }); 

return this; 

}; 

$.fn.add_background = function(color) { 

	this.css('background-color', color); 

	return this; 

} 

$('.red-alert').add_background("red").log_text_on_click(); 

$('.yellow-alert').add_background("yellow").log_text_on_click();



• 如果需要创建新的 .green-alert 类名,只需要修改定义好的 add_background() 和 log_text_on_click 函数

• 如果需要将console.log($(this).html())中.html()改成.text(),只需要在一个位置修改,而不是多个位置

• 可以在项目里的很多地方复用这两个函数

四、工作流程

===================================================================

需求分析:工作一般是从收集需求开始的,只有这样我们才能够定义出项目内容和衡量项目成败的标准。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了

助,可以添加V获取:vip1024c (备注前端)**
[外链图片转存中…(img-MRUsh80K-1712055561321)]

最后

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了

[外链图片转存中…(img-2UYo8fxC-1712055561321)]

[外链图片转存中…(img-11rt5Wvq-1712055561321)]

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值