概念
🌈 Vue的优点?Vue的缺点?
- 优点
- 渐进式
- vue本身只提供数据响应式,需要全局缓存用 vuex,需要路由用 vue-router
- 组件化
- 响应式数据
- 缺点
- 不利于 SEO
- 爬虫爬取的时候只看见根容器 #app 和一堆 script 脚本,看不到 DOM 和内容,因为得先加载 vue,vue 再动态渲染出 DOM
- 不兼容 IE8 及其以下版本
- IE8 实现了 Object.defineProperty ,但只能在 DOM 对象上使用;在原生JS对象上使用会报错
- 首屏渲染时间长
Vue 跟 React 有什么异同
- 相同
- 都是单向数据流
- 都使用了 虚拟DOM 技术
- 都支持 SSR
- 都是基于组件化开发
- 不同点
- 视图
- vue: template
- react: JSX
- 数据改变
- vue: 响应式
- react: 手动 setState
- 事件绑定
- 状态管理工具
- vue: Vuex
- react: Redux、Mobx
🌈 Vue 和 JQuery 的区别在哪?为什么放弃 JQuery 用 Vue ?
- JQuery直接操作DOM,而Vue不直接操作DOM,而是只需操作数据
- Vue的虚拟DOM技术,能适配多端
- Vue集成了一些库,大大提高开发效率,例如Route、Vuex等等
🌈 MVC 和 MVVM 区别
- MVC
- Model 负责从数据库中取数据
- View 负责展示数据
- Control 负责从 Model 中获取数据渲染到 View ,负责用户交互(e.g. 点击事件)
- 思想:Controller将Model的数据展示在View上
- MVVM
- Model 取数据的地方
- View 展示数据的地方
- VM ModelView 数据双向绑定
- 思想: View 和 Model 实现数据同步,不需要手动更新
- VM提供了数据的双向绑定
- 注意:Vue不严格符合MVVM,因为MVVM规定Model和View不能直接通信,而Vue可以使用ref进行通信
data
为什么data是个函数并且返回一个对象呢?
对象是个引用值,多个组件使用同一个引用会导致变量污染。我们只是希望组件样式和行为复用,而不希望数据内容也完全一样。而返回一个函数就能解决这个问题,因为每次函数执行后都返回的是个新对象