广告
每天积累一点点,进步一点点-方脸猫博客

前端开发并不是那么容易3-什么是框架和库

原创:内容为作者原创,可能存在参考别人观点
正文

1544434450791976.jpg


        框架(framework) 和库(library)的区别是什么?其实这两个词在不同的语境下,有时候是可以相互代替的。但是严格的来说,框架是比库更加广泛,可以理解为框架是对一整个项目的解决方案,库只是对某种功能的解决。


        一个库是一系列对象、方法等代码,您的应用程序可以把这个库“连接”进来。这个库起到了重用代码的作用,为您省下了重写这部分代码的工作量,而且常用的库都会有专员在维护,具有很高的稳定性和安全性。


        而一个框架是一个软件系统中可重用的一部分。它坑能包含子程序、库、胶水语言、图片等一些“资源”,这些资源一起组成了软件项目、框架不像库,可能包含多种语言,某些功能可能通过API的方式让主程序调用。


        所以框架是一个更加灵敏和宽松的名词,在具体的情境中,他可能指一个库、多个库、脚本代码。或者多个可单独运行的子程序的集合。


        以前端来举例,jQuery就是一个库。jQuery是纯粹的JavaScript代码,它的目标是使用更少的额代码处理DOM相关操作。当我们使用Jquery时,相当于引入了新的对象和方法,可以利用jQuery定义代码,不需要重写这部分功能。


        比如vue2.0就是一个框架。首先vue2.0不仅包含JavaScript代码,他还包含了CSS等其他的一些东西。其次它的功能是方便开发者搭建可交互的WEB程序,vue2.0是搭建一个单页面应用程序,这对功能性的web程序,很大程度上解决了操作响应慢,操作不流畅,用户体验差等一些问题,因为他里面的页面其实只是一个页面,站点内的其他页面都在这个页面内部,通过J路由控制显示那一部分,隐藏那一部分,这些过程都由vue生成的js代码来控制的。所以说,框架是对某些项目的一种解决方案。并且其他的开发者还对给对应的框架开发UI框架,比如在使用vue的时候可以使用饿了吗团队的框架,很大程度上减少开发者的工作量,也避免了重复造轮子的问题。


index.jpg


        作为一个工程师,在面对各种框架和库的时候,很容易陷入迷茫,到底应该选择哪一种?有一个常见的误区是:框架是万能的,不管我开发什么项目都可以选择使用框架。其实这样并不对,比如说我这个博客,在开发之前,没有考虑完善,直接使用vue框架来搭建项目,但是等项目完场到差不多的时候,在做SEO方面优化的时候,就遇到了问题,前面说了,vue是单页面应用,所有的页面都是路由通过伪装来切换页面,所以蜘蛛在爬取的时候就会很迷茫,为什么?因为蜘蛛爬取是不会运行JS代码的,所以拿到的页面其实就是一个div标签,没有其他的东西,其他的都在js代码里面(谷歌支持爬取SPA单页面应用,百度不支持)。这就很是让我头疼,不过还好,让我了解到了服务器渲染(SSR),而且vue官方也推出了SSR解决方案,根据这种方法来让蜘蛛识别,虽然是解决了问题,但是在真正去做的时候,但是遇到了很多麻烦。所以说,不是包含的广泛的框架,就可以随便使用,还是要用在合适的地方比较好。比如商城类,后台类web系统就很适合用vue。


u=3819780893,2965001272&fm=26&gp=0.jpg


        每年都会有很多的新的框架发布,其实他们的作者并不是无聊想要写一个框架,而是为了解决一个新的问题。比如jQuery的优势在于方便的操作DOM,而vue并不是更好的“jQuery”,而是提出一种新的解决问题的思路:通过数据绑定,让开发者直接修改数据模型,不用关心界面(DOM)的更新。


        GASP库发现jQuery动画慢的问题,就重点优化JavaScript动画的部分,他好撑动画速度比jQuery快20倍,而且能开启硬件加速,在某些情况下比CSS的性能还要好。


        所以说,不要太迷信框架,有时候越是有名的框架,就越需要满足更多人的需求,会封装很多您可能不需要的资源进去。对于您来说,它可能只需要一小部分功能,但是引入一个庞大的框架,其实是没有必须要的。

评论(总计0条)(低分辨率暂不支持评论)
暂无评论
推荐(随机推荐5条文章)

webpack+vue初始化项目

使用webpack+vue初始化一个项目,基本的步骤

发布时间:2018-11-07阅读量:113

tp5开发的接口或者网站部署到Linux报错Fatal error: Uncaught exception

Fatal error: Uncaught exception

发布时间:2018-11-14阅读量:116

音乐免费下载-MV免费下载-音乐搜索

音乐免费下载,MV免费下载,音乐搜索,酷我音乐免费下载,无损音乐免费下载

发布时间:2018-11-18阅读量:105

小程序源码获取

很简单的方法获取小程序的源码,小程序源码获取,小程序源码,微信小程序源码下载

发布时间:2018-11-18阅读量:112

Cookie和Session的概念及区别

什么是Cookie和什么是Session?以及二者的区别在哪?

发布时间:2018-11-20阅读量:104

分类 方脸猫博客
广告招租 方脸猫博客
信息交流 方脸猫博客
snow
qq群 站长交流群 群号:272541864
qq号 站长QQ QQ:3189859329
webLogo