vue面试题总结

1、vue数据双向绑定的原理

vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,通过Object.defineProperty()来实现数据劫持的。在数据变动时发布消息给订阅者,触发相应的监听回调。

Object.defineProperty( )是用来做什么的?它可以来控制一个对象属性的一些特有操作,比如读写权、是否可以枚举,这里我们主要先来研究下它对应的两个描述属性get和set。如果不熟悉defineProperty,猛戳这里

2、react和vue的区别

(1)数据是不是可变的

react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutable来实现数据不可变;而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。

(2)通过js来操作一切,还是有各自的处理方式

react的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css;vue是把html,css,js组合到一起,用各自的处理方式,vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。

(3)组件的写法,是类式的还是声明式的

react是类式的写法,api很少;而vue是声明式的写法,通过传入各种options,api和参数都很多。所以react结合typescript更容易一起写,vue稍微复杂。

猜你喜欢

转载自blog.csdn.net/weixin_38384967/article/details/88990596
今日推荐