前端架构

大话前端组件化

我是研究僧i 提交于 2019-11-29 17:43:29
在软件工程中系统的架构也在随着规模不断的演进,最初的面向过程的软件开发到现在面向对象的软件开发。软件工程也逐渐进入组件化开发阶段。然而前端的组件化的发展一直滞后,传统的桌面开发早已经进入组件化开发阶段。 Web1.0时代前端主要是HTML与CSS的天下,JS则是简单的辅助工具而已。到了Web2.0时代前端开始走向以AJax技术为核心轻量级别交互,以JQuery、ExtJS、Dojo代表前端类库(后两者为框架)为导向的开发开始迅猛发展。JQuery在前端领域叱咤风云多年,人们都纷纷认为JQuery战无不胜。而ExtJS、Dojo在UI组件上做的面面俱到,对于当时的管理类Web系统来说也是福音。同时也看见前端组件化初见苗头(实现了一些初级的组件化开发模式,如:jQuery的扩展...),人们都纷纷意识到前端组件化带来的巨大好处。 到了Web2.0后半页移动互联网的迅速崛起,交互从传统的PC转到移动端。而移动端对于交互性与性能的要求也要比PC端强的多。同时浏览器的信息量也越来越大,传统的框架与类库已经不堪重负。已经无法保证前端维护性与性能。 人们就开始思考前端已经早已不是类库能解决的问题了,前端已经成为一个工程化的问题。第一代前端框架涌现出来,以Knockout.js、Ember.js、Backbone.js为代表。第二代前端框架:以Angular.js、React.js、Vue.js

前端组件化

馋奶兔 提交于 2019-11-29 17:42:42
在大型软件系统中,web应用的前后端已经实现了分离,而随着REST软件架构的发展,后端服务逐步倾向于 微服务 ,简单来说就是将一个大型后端服务,拆分成多个小服务,它们分别部署,降低了开发的复杂性,而且提高了系统的可伸缩性。而前端方面,随着技术的发展,开发的复杂度也越来越高,传统开发模式总是存在着开发效率低,维护成本高等的弊端。 那么前端组件化开发都经历了哪些阶段呢? 二、 前端组件化开发发展之路 1、交互少的静态页面时期:公共模块和CSS 这是一个很古老的时代,那时的前端页面就是一些基本的HTML标签以及JS和CSS,页面上大部分都是一些静态的文字,就在这个时期,前端JS和CSS已经出现了组件化,或许更多的应该成为模块化,即开发者把不同模块的或者公共的JS和CSS放在不同的文件中,然后在页面引入并使用,这种方式也沿用至今。 2、繁琐的早期动态页面时期:动态引入 由于静态页面不能在页面上存储数据,阅读者也不满足于基本的页面交互,更希望页面能够活起来,且能够把交互的数据存储起来,于是出现了很多服务端技术,比如ASP,JSP。这些技术的出现使得前端页面活起来了,用户可以根据自己的需求进行数据的交互。 然而这时的页面上充斥着业务逻辑,随着业务逻辑的增多,页面的内容也越来越多,越来越复杂。在这个时期前端组件化开发得到了一定的发展,开发者已经不满足于简单的将JS和CSS文件模块化

前端涉及的所有知识体系

删除回忆录丶 提交于 2019-11-29 17:39:40
github上最全的资源教程-前端涉及的所有知识体系 目录 (?) [+] 前端无疑是2016年最火热的技术,没有之一。 各种前端mvc框架层出不穷,angular js,vue, React ,前端组件化开发概念已经深入人心。前端工资已经比手机端开发还要高了。 作为个人站长,学习下前端设计也是有必要的,一来有些小的设计问题可以自己解决,同时还能提高自己的审美,提高网站的ui设计水平。 必备基础技能 前端技能汇总 这个项目详细记录 了前端工程师牵涉到的各方面知识。在具备基本技能之后可以在里面找到学习 的方向,完善技能和知识面。 frontend-dev-bookmarks 是老外总结的 前端开发 资源。覆盖面非常广。包括各种知识点、工具、技术,非常全面。 以下是个人觉得入门阶段应该熟练掌握的基础技能: HTML4 , HTML5 语法、标签、语义 CSS2.1 , CSS3 规范,与HTML结合实现各种布局、效果 Ecma-262 定义的javascript的语言核心,原生 客户端javascript , DOM操作 , HTML5新增功能 一个成熟的客户端javascript库,推荐 jquery 一门服务器端语言:如果有服务器端开发经验,使用已经会的语言即可,如果没有服务器端开发经验,熟悉Java可以选择Servlet,不熟悉的可以选PHP

前端架构之路:使用Vue.js开始第一个项目

不打扰是莪最后的温柔 提交于 2019-11-29 16:40:45
  Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式。本文通过一个简单的实例开始上手Vue.js开发。   一、技术准备   使用传统mvc项目的开发人员,笔者建议在开始项目前,对以下两个技术点进行了解。   1、 Vue.js基础知识 Vue.js特点就是入门简单,api 简洁一致,文档清晰。对于了解Html,CSS,JavaScript花几个小时看一遍,就能掌握基础的东西。 可参考 http://www.runoob.com/vue2/vue-tutorial.html 。   2、 ES6的模块化加载 有ES6中,可以不使用SeaJS或者RequireJS,而直接使用import和export在浏览器中导入和导出各个模块了, 具体使用参考 http://www.cnblogs.com/diligenceday/p/5503777.html 。   二、开发工具   工欲善其事必先利其器,开发Vue项目建议使用“属于21世纪”的代码编辑器——Atom,它开源免费而且是跨平台的,基于 WEB 技术(Chromium+Node.js)开发的,简单理解的话编辑器本身其实是一个跑在本地的网页,用户可以用Javascript来编写编辑器插件,缺点就是基于WEB导致性能不是很理想,但这不影响笔者对它的爱,Atom好用,而且有大量的高亮提示,语法插件可使用

软件工程实践2019第二次作业

主宰稳场 提交于 2019-11-29 15:20:55
写在前面 记得我在上篇博客中写到,目前最想学的技术是前端,因为比较感兴趣,并且以后想往这个方向走。但是自己一直没有去具体了解前端包括哪些、要学习哪些内容(害,真的要提高行动力了)。目前只对HTML、CSS、JS有一些很初步的了解。刚好借这次作业的机会,在网上认真查找了一些前端的相关信息,也给自己做个规划。 几个模块 根据网上查找的相关资料,我把前端大致归为这几个模块。很多模块只有个大概的概念,有些架构甚至是第一次听说emmmmm...... 学习计划 根据以上模块及其难易程度和进阶顺序,我制定了如下学习计划 路漫漫其修远兮,以上的计划难度不小,要达到掌握甚至精通有一段很长很艰难的路要走。 关于学习资源 网络上的资源很多,自己打算入门阶段先去CSDN和Mooc上看教程,若有时间再去阅读书籍。看到一些评分很高的书,如:《Head First HTML与CSS》、《JavaScript高级程序设计》、《你不知道的JavaScript》、《JavaScript DOM编程艺术》等等。 来源: https://www.cnblogs.com/yxyolo/p/11521006.html

前端 html篇

本小妞迷上赌 提交于 2019-11-29 13:40:23
web开发本质: html是一个标准,规定了大家怎么写网页 1.浏览器输入网址回车发生了什么事 1. 浏览器 给服务端 发送了一个消息2. 服务端拿到消息3. 服务端返回消息4. 浏览器展示页面 sever服务端 import socket ​ sk = socket.socket() ​ sk.bind(("127.0.0.1", 8080)) sk.listen(5) ​ while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world!</h1>") conn.close() HTML 浏览器读取有一个file协议 <!DOCTYPE> 标签 ​ 声明必须是 HTML 文档的第一行,位于 标签之前 ​ </!doctype> ​ 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。 ​ html是超文本标记型语言,属于cs架构 <!DOCTYPE html> #标准规范<html lang="en"><head> #html头 <meta charset="UTF-8"> #字符编码 <title>Title</title> #页面头部显示内容<

SpringMVC

时光怂恿深爱的人放手 提交于 2019-11-29 12:02:32
SpringMVC入门 1、什么是MVC?   MVC模型:是一种架构型的模式,本身不引入新功能,只是帮助我们将开发的结构组织的更加合理,使展示与模型分离、流程控制逻辑、业务逻辑调用与展示逻辑分离,也就是责任分离。 2、SpringMVC框架,   它解决了WEB开发中常见的问题(参数接收、页面跳转 、文件上传、表单验证、国际化、等等),而且使用简单,与Spring无缝集成。 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架 (更安全,性能更好,更简单)。 支持 RESTful风格的 URL 请求 。 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。 3、Spring的前端控制器DispatcherServlet   所有的请求都被该控制器统一处理,处理所有请求的共同操作。 4、使用SpringMVC的流程   第一步:搭建web项目,导入maven依赖spring-web spring-webmvc spring-context jstl servlet-api   第二步:配置web.xml配置前端控制器,本质上是一个servlet   第三步:处理器映射器、处理器适配器、视图解析器等都是框架已经写好的,在使用时会自动调用,不用配置   第四步:开发和配置控制器Controller   第五步

最全前端面试集合(2)

对着背影说爱祢 提交于 2019-11-29 11:44:50
1、请问闭包有那一些的特性 答:闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 注:闭包( closure )是JS语言的一个难点,也是它的独有的特色,在很多的高级应用都要依靠闭包实现。 下载链接: https://www.yinxiangit.com 2、闭包的定义及其优缺点 定义: 闭包 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的变量,且返回的这个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的就是外部函数--高阶函数。 说白了就是一个环境,能够读取其他函数内部的变量。 本质上 ,闭包是将函数内部和函数外部连接起来的桥梁。 用处:1.读取函数内部的变量; 2.这些变量的值始终保持在内存中,不会在外层函数调用后被自动清除。 优点:1:变量长期驻扎在内存中; 2:避免全局变量的污染; 3:私有成员的存在 ; 特性:1:函数套函数; 2:内部函数可以直接使用外部函数的局部变量或参数; 3:变量或参数不会被垃圾回收机制回收 GC; 缺点: 常驻内存 会增大内存的使用量 使用不当会造成内存泄露 详解: (1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前

Web前端的学习之路

ε祈祈猫儿з 提交于 2019-11-29 10:06:43
前言 最近好久都没有写博客了,可能是因为公司项目业务需求变少,也可能是我个人心里的一些放松。从公司5月份裁掉安卓客户端负责人之后,我就顺利成了安卓的负责人,但是薪资待遇却和之前一样没有变化,然后又不敢跳槽,才会出现现在这种学习热情底下,每天昏昏沉沉的感觉。 作为一名安卓开发,有那么多年的工作经验,但是有一些技术知识却只会使用,在面试的时候却无法真正的说清楚,这就会导致面试过程的吃亏。所以我打算在目前的工作岗位上学习Web知识,为大前端开发做准备,下面我就我个人对前端的一些学习经历,希望能对大家有帮助。 孔子说,三人行,必有我师焉。我在网上找了一个经历和我大致相同的人作为我的老师。 《Web前端入门的自学路线》 ,根据这个学习路线,我大致掌握了前端开发的知识结构。 看完这个项目之后,我一定对web开发技术架构有了大致的了解,但是如果要真正的开发,我心里还是有许多不明所以的地方。 1)前端页面如何排版?还有就是我们写的web页面如何兼容手机客户端? 2)访问网络使用jQuery的Ajax异步请求如何实现页面的刷新? 3)web前端开发基础知识的掌握情况,怎么才能证明对基础知识有一定程度的掌握? 4)有没有比较好的初级项目可以练手? 作为一个安卓开发程序员,很大程度上被开源项目的增多影响,很大程度上我们开发都是在拷贝别人的代码,而不是自己静心去思考一个功能该如何去实现。 但是有句话说的是

html5前端的知识点及学习方向

我怕爱的太早我们不能终老 提交于 2019-11-29 10:00:59
html5前端的知识点及学习方向 作者:叩丁狼教育(云姐) 链接:https://www.zhihu.com/question/52055152/answer/695000093 来源:知乎 第一阶段 HTML5+CSS3网站 开发主要内容: 1、PhotoShop 熟练掌握PhotoShop,能够独立完成尺寸测量、切图、图层操作、Cutterman切图神器等 2、HTML5 掌握客户端和服务端交互原理、浏览器内核、语法及使用、常用标签、语义化、表单元素、HTML5 新标签、编码规范。 3、CSS3 掌握CSS常用属性、各种选择器、继承和优先级、数值与单位、文字文本样式、CSS盒子模型、CSS背景技巧(圆角、阴影、过渡等)、定位和浮动、伪类和伪元素、、CSS高级技巧(精灵图、滑动门、CSS三角等)、布局样式、CSS兼容性问题、Google浏览器开发者工具调试技巧。 第二阶段 JavaScript网页编程 主要内容: 1、编程预科 2、JavaScript基础 掌握JS基本语法、数据类型、操作符、分支语句、循环语句、操作符、函数、数组、内置对象、事件、DOM操作、JS企业编码规范、断点调试等 3、Web APIs和网页特效 熟悉BOM 编程、DOM高级编程、高级事件处理、浏览器兼容性、定时器、常用函数库、高阶函数封装思想、立体轮播图、动画特效、导航菜单、瀑布流、3D旋转木马