使用框架
UI框架 bootstrap、Mui、layui
js框架 vue、angular、react
zepto和jquery是什么关系
二者都是js库,zepto是jQuery的轻量级替代品,它与jquery有着类似的api,zepto主要是用在移动端,不支持IE浏览器,jquery主要用在PC端,jQuery 版本 2 以上不支持 IE6,7,8 浏览器
jquery源码如何实现选择器,为什么$取得的对象要设计成数组的形式
jquery内部采用了一种“类数组对象”的方式作为存储结构,既可以像对象一样处理jQuery操作,也可以像数组一样使用push、pop、shift、sort、each、map等类数组的方法操作jquery
jquery如何绑定事件,有几种类型和区别
jquery绑定事件的方法分别是:bind(),live(),delegate()和on(),
像bind(),live(),delegate(),随着jquery版本的更新,已经被移除,注意:bind()是在3.0版本之后被移除的,现在用的最多的是on(),on()既可以绑定单事件,也可以绑定多事件,还可以进行事件委托
区别就是:bind()的事件绑定是只对当前页面选中的元素有效,对动态创建的元素bind()事件,是没有办法达到效果的,而其余三个可以
MVVM,MVC,MVP
MVC:先介绍M:Model(模型),V:View(视图) ,C:Controller(控制器),View层是展示html页面的,Controller层是业务逻辑,Model层是数据保存,视图的改变会通过控制器要求数据层改变状态,然后反馈给视图层。
MVVM:是将Controller改为VM,是Model-View-ViewModel的缩写,视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
MVP:MVP模式是将Controller改为Presenter,View和Model之间不发生联系,都通过Presenter传递,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller
Vue和Angular的双向数据绑定原理
Vue 双向数据绑定的原理:
vue将普通的对象的属性通过Object.defineProperty转换为ES5特性之一的 getter/setter,模板中每个指令/数据绑定都有一个对应的 watcher 对象, 当修改对象值的时,首先会触发属性的setter,在setter被调用时,会触发 watcher 重新计算 ,也就会导致它的关联指令更新 DOM
Angular双向数据绑定的原理:
angular.js是通过脏值监测的方式查看数据是否变更,最简单的方法是通过setInterval()定时循环检测数据变动
Vue和Angular的组件通信以及路由原理?
vue得组件通信,
- 父组件传递数据给子组件
举个栗子
子组件通过props来接收数据:
方式1:
props: [‘childMsg’]
子组件与父组件通信
Angular组件间通信
Angular组件之间的通信方式分为三种:
1) 父组件向子组件通信(输入属性)分为两步:
1、在子组件上定义自己要接受父组件输入的参数:
2、在父组件的HTML模板中声明要输入的数据:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200829165340141.png#pic_center)
子
2) 子组件向父组件通信(输出属性)
1、在子组件中设置要输出的类型:
2、在html模板中设置事件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200829165403486.png#pic_center)
3、 在父组件的控制器中接收输出属性
3) 使用中间人模式通信
所谓中间人模式就是:当A =》 C 通信时,先将A =》B,B=》C,
B就是所谓中间人模式;
按照情况一般分为两种:
1、兄弟组件通信
这里我们选择父组件做为中间人,先是使用输出属性,再使用输入属性就OK了
2、非兄弟组件通信
选择一个依赖注入service做为中间人,然后进行通信。