1.谈谈你对MVVM开发模式的了解
MVVM分为Model、View、ViewModel三者。
Model代表数据模型,数据和事务逻辑都在Model层中定义;
View代表UI视图,担任数据的展示;
ViewModel担任监听Model中数据的改动而且操控视图的更新,处理用户交互操作;
Model和View并无直接相关,而是经过ViewModel来进行联络的,Model和ViewModel之间有着双向数据绑定的联络。因而当Model中的数据改动时会触发View层的改写,View中因为用户交互操作而改动的数据也会在Model中同步。
这种模式实现了Model和View的数据自动同步,因而开发者只需要专心对数据的维护操作即可,而不需要自己操作dom。
2.Vue有哪些指令?
v-html、v-show、v-if、v-for等等
3.v-if和v-show有什么区别?
v-show仅仅操控元素的显现方法,将display特点在block和none来回切换;而v-if会操控这个DOM节点的存在与否。当我们需要常常切换某个元素的显现/躲藏时,运用v-show会愈加节约性能上的开销;当只需要一次显现或躲藏时,运用v-if愈加合理。
4.简述Vue的呼应式原理
当一个Vue实例创建时,vue会遍历data选项的特点,用Object.defineProperty将它们转为getter/setter而且在内部追踪相关依靠,在特点被拜访和修改时告诉变化。
每个组件实例都有相应的watcher程序实例,它会在组件烘托的过程中把特点记录为依靠,之后当依靠项的setter被调用时,会告诉watcher重新计算,然后致使它相关的组件得以更新。
更多题目:https://www.jb51.net/article/178292.htm
web前端面试问题汇总
现在前端开发越来越火,主要是两个大方向,一个是web前端,一个是移动前端。之所以写下来面试题目,是希望可以和大家共享,帮助更多对前端感兴趣的同学去接触前端的相关东西,一个目的,抛砖引玉,等有心人自己继续挖掘更深入东西,相互探讨,共同进步,如有错漏,欢迎批评指正,月笙之荣幸。
答案是我在网上搜索整理出来的,基本上都表明答案出处,如有侵权,还请作者联系我处理,谢谢!
1.HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。对应着对这个资源的查,改,增,删4个操作。
区别:
(1)GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
(2)GET请求一般仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
(3)GET请求的数据会附在URL之后,POST把提交的数据则放置在是HTTP包的包体中。
(4)POST的安全性要比GET的安全性高。通过GET提交数据,用户名和密码将明文出现在URL上,因为登录页面有可能被浏览器缓存,其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了。
(5)对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
(6)这是最重要的一点,希望大家知道。Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为”GET”,实质上,GET和POST只是发送机制不同,并不是一个取一个发!GET操作,可以用Post来完成!
2.Bootstrap的优缺点
Bootstrap是基于HTML、CSS、JAVASCRIPT的,是一个CSS/HTML框架。其设计层次清楚,bootstrap的基于less的分模块的设计,可以很方便的让你在它的基础上改造出自己的样式。
优点:
(1).受欢迎,受欢迎意味着很多人的参与,就会有很多教程和文章,有更多的实例和网站使用它,会有更多的第三方扩展,能够更好的与现实的web开发项目结合。禁得住未来的考验;
(2)bootstrap发布已经6个年头了,相对来说是比较成熟的框架,在大量的真是项目中充分地使用和测试,一个字:稳;
(3)、bootstrap拥有完善的文档,这样可以加快学习的进程,减少学习成本,而且它的学习成本也不算很高,只需要有一些html,css,js基础就可,这对于公司培养新人是非常重要的一个参考点;
缺点:
(1)这个缺点也可以理解成优点。框架非常的详细,大量的组件样式,可以直接拿来用。但另一方面,意味着,你如果有自己特殊的需求,就需要重新定制样式,如果一个网站中有大量的非bootstrap“风格”的样式存在,那么你就需要做大量的css重写,因此也就失去了使用框架的意义。用一个程序猿的说法就一个字“重”,很形象。
任何不分析具体场景需求而判断一个框架的行为,都是耍流氓!合适的才是最好的。
3.你可以自己搭建Angular框架吗?Angular可以搭建后端框架吗?
可以。
4.会Html5吗?
5.界面加载的慢,会是什么原因?
其实界面的渲染是没有问题,主要是加载内容会存在慢的情况。有如下几个方向可以优化。
(1)优化图像。可以使用图像处理工具如PS来减小颜色深度、剪切图像到合适的尺寸等。
(2)去掉不必要的插件
(3)减少DNS查询是一个WEB开发人员可以用了页面加载时间快速有效的方法。减少不同域名的数量将减少并行下载的数量,加速你的网站。
(4)最小化重定向,重定向增加了额外的HTTP请求,因此也增加了页面加载时间。然而有时重定向却是不可避免的,如链接网站的不同部分、保存多个域名、或者从不存在的页面跳转到新页面。
(5)使用内容分发网络(ContentDeliveryNetwork,CDN)服务器处理大流量是很困难的,这最终会导致页面加载速度变慢。而使用CDN就可以解决这一问题,提升页面加载速度。
(6).把CSS文件放在页面顶部,而JS文件放在底部,把CSS文件在页面顶部引入可以禁止逐步渲染,节省浏览器加载和重绘页面元素的资源。JavaScript是用于功能和验证。把JS文件放在页面底部可以避免代码执行前的等待时间,从而提升页面加载速度。
(7)利用浏览器缓存,浏览器缓存是允许访客的浏览器缓存你网站页面副本的一个功能。这有助于访客再次访问时,直接从缓存中读取内容而不必重新加载。这节省了向服务器发送HTTP请求的时间。此外,通过优化您的网站的缓存系统往往也会降低您的网站的带宽和托管费用。
(8)使用CSSSprites整合图像
多图像的网站加载时间比较久。其中一个解决方法就是把多个图像整合到少数几个输出文件中。你可以使用CSSSprites来整合图像文件。这样就减少了在下载其他资源时的往返次数和延迟,从而提高了站点的速度。
(9)压缩CSS和JavaScript
压缩是通过移除不必要的字符(如TAB、空格、回车、代码注释等),以帮助减少其大小和网页的后续加载时间的过程。这是非常重要的,但是,你还需要保存JS和CSS的原文件,以便更新和修改代码。
(10).启用GZIP压缩,在服务器上压缩网站的页面是提升网站访问速度非常有效的一种方法。你可以用gzip压缩做到这一点。Gzip是一个减小发送给访客的HTML文件、JS和CSS体积的工具。压缩的文件减少了HTTP响应时间。据Yahoo报道,这大概可以减少70%的下载时间。而目前90%的通过浏览器的流量都支持Gzip压缩,因此,这是一个提示网站性能有效的选项。优化你的网站是留住你的访客和提升搜索引擎排名有效的途径。使用上面提到的10种方法来提高你的网站性能。
6.知道探针吗?
网页探针是一个免费、开源、绿色免安装的web开发辅助工具,可以方便的查看页面任意对象的html源码,支持框架穿透模式,可自动生成模拟控制代码。(ps:网上搜了一下,相关资料很少,也不知道对不对,大家稍微参考下,对正确性不负责)