前端基础搬运工-Angular和React模块
十一、Angular和React模块
基础部分
1. angularJS是什么?
答:
-[ ] AngularJS是一个JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。
AngularJS通过指令扩展了 HTML,且通过表达式绑定数据到HTML
2. angularJS中的MVVM模式
答:
-[ ]采用这种方式为合理组织代码提供了方便,降低了代码间的耦合度,功能结构清晰可见。
Model:一般用来处理数据,包括读取和设置数据,一般指的是操作数据库。
View:一般用来展示数据,就是放数据,比如通过HTML来展示。
Controller:因为一个模块里面可能有多个视图和模型,控制器就起到了连接模型和视图的
作用。
VM--> ViewModel(视图模型)也就是$scope。
MVC模式在AngularJS 中的体现:
一、首先定义应用,采用ng-app属性指定一个应用,表示此标签内所包裹的内容都属于
APP的一部分。
3. 模块化与依赖注入
答:
-[ ] AngularJS模块:
AngularJS模块是一种容器,把代码隔离并组织成简洁,整齐,可复用的块。
模块本身不提供直接的功能:包含其他提供功能的对象的实例:控制器,过滤器,服务,动
画。可通过定义其提供的对象构建模块。通过依赖注入将模块连接在一起,构建一个完整的
应用程序。
AngularJS建立在模块原理上。大部分 AngularJS 提供的功能都内置到ng-*模块中。
创建模块:
你可以通过 AngularJS 的 angular.module 函数来创建模块:
var app = angular.module("myApp", []);
依赖注入:(Dependency
Injection,简称 DI)是一种软件设计模式,在这种模式下,一
个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,
然后成为了该客户端状态的一部分。
该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转
和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用
该系统找到依赖
一句话,没事你不要来找我,有事我会去找你。
AngularJS提供很好的依赖注入机制。以下 5个核心组件用来作为依赖注入:value、
factory、service、provider、constant
4. ReactJS的适用场景
答:
-[ ]一些后台界面,或者是和后台数据比较多,又或者和用户交互比较多,dom 操作频繁的
都可以用 react。因为 react 的大特点就是虚拟DOM 技术,这样可以提高渲染的性能。个
人的体验就是,用 react可以让整个页面的速度提高很多。
另外这样做的话,和后台的数据通过接口来进行前后端分离,也挺好挺方便的
5. ReactJS是什么
答:
-[ ] React是一个用于构建用户界面的 JAVASCRIPT 库。
React主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)。
React起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月
开源。
React拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
6. ReactJs 的特点
答:
-[ ] 1.声明式设计−React 采用声明范式,可以轻松描述应用。
2.高效−React通过对 DOM 的模拟,最大限度地减少与 DOM 的交互。
3.灵活−React可以与已知的库或框架很好地配合。
4. JSX− JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
1.组件−通过React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
1.单向响应的数据流− React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
7. react Native比起标准Web开发或原生开发能够带来的三大好处
答:
-[ ] 1.手势识别:基于Web 技术(HTML5/JavaScript)构建的移动应用经常被抱怨缺乏及时响应。而基于原生 UI的React Native能避免这些问题从而实现实时响应。
1.原生组件:使用 HTML5/JavaScript实现的组件比起原生组件总是让人感觉差一截,而React Native 由于采用了原生UI组件自然没有此问题。
1.样式和布局:iOS、Android 和基于Web 的应用各自有不同的样式和布局机制。React Native 通过一个基于 FlexBox的布局引擎在所有移动平台上实现了一致的跨平台样式和布局方案。
8.
实际工作部分
1. 看过Angular的源码吗,它是怎么实现双向数据绑定的?
答:
- [ ] angular对常用的dom事件, xhr事件等做了封装,在里面触发进入angular的digest 流程。在digest 流程里面,会从 rootscope 开始遍历,检查所有的watcher
2. 为什么angular不推荐使用dom操作?
答:
-[ ] Angular倡导以测试驱动开发,在的 service 或者 controller 中出现了DOM 操作,那么也就意味着的测试是无法通过的使用 Angular 的其中一个好处是啥,那就是双向数据绑定,这样就能专注于处理业务逻辑,无需关系一堆堆的 DOM 操作。如果在 Angular 的代码中还到处充斥着各种 DOM操作,那为什么不直接使用jquery 去开发呢。
3. MVC模式的意思是,软件可以分成三个部分?
答:
-[ ]视图(View):用户界面。
控制器(Controller):业务逻辑
模型(Model):数据保存
4. 各部分之间的通信方式是什么?
答:
-[ ] View传送指令到Controller
Controller完成业务逻辑后,要求 Model改变状态
Model将新的数据发送到 View,用户得到反馈