rem布局
em时父级的字体的大小,rem是根字体的大小。rem是相当于html根元素来判断的大小,屏幕变化的时候不是很好控制,用百分比了话,可以根据屏幕的大小,占比多少,相对比较好控制。
16.MVC MVVM(优缺点)
MVVM是由MVC衍生出来的一种前后端分离的数据开发模式,MVC是后台的前后端分离的数据开发模式,其中的M是指model,model呢是指模型,模型呢也就是数据;V呢是指view,view就是视图,视图就是编写的页面;C就是controller,也就是控制器,控制器也就是业务逻辑。MVVM中第一个M是前端从API中获取的数据,第一个V是前端的页面,第二个V是后台管理系统的页面,第二个M是后台数据库里面的数据。
优点:
1.双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化。很好做到数据的一致性,不用担心,在模块的这一块数据是这个值,在另一块就是另一个值了。所以MVVM模式有些时候又被称作:model-view-binder模式。
2.View的功能进一步的强化,具有控制的部分功能,若想无限增强它的功能,甚至控制器的全部功几乎都可以迁移到各个View上(不过这样不可取,那样View干了不属于它职责范围的事情)。View可以像控制器一样具有自己的View-Model.
3.由于控制器的功能大都移动到View上处理,大大的对控制器进行了瘦身。不用再为看到庞大的控制器逻辑而发愁了。
缺点:
第一点:数据绑定使得Bug很难被调试。你看到界面异常了,有可能是你View的代码有Bug,也可能是Model的代码有问题。数据绑定使得一个位置的Bug被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。
第二点:一个大的模块中,model也会很大,虽然使用方便了也很容易保证了数据的一致性,当时长期持有,不释放内存,就造成了花费更多的内存。
第三点:数据双向绑定不利于代码重用。客户端开发最常用的重用是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同。那就不能简单重用View了。
17、angular指令
概述:
指令是所有AngularJs应用最重要的部分。一个指令用来引入新的HTML语法。指令是DOM元素上的标记,使元素拥有特定的行为。举例来说,静态的HTML不知道如何来创建和展现一个日期选择器控件。让HTML能识别 这个语法,我们需要使用指令。
一般考虑到浏览器的兼容性,强烈建议使用默认的属性就可以,即以属性的形式来进行声明
Angular指令是扩展的HTML属性,带有前缀ng-
AngularJS通过内置的指令来为应用添加功能
Angular允许自定义指令
例如:
ng-app指令初始化一个AngularJS应用程序,ng-init指令初始化应用程序,ng-model指令把元素值(比如输入域的值)绑定到应用程序,ng-repeat重复特定的元素,ng-show有条件地显示一个元素
18、Vue指令
v-text:更新元素的textCountent
v-html:更新元素的innerHTML。
v-show:根据表达式的真假值,切换元素的display CSS属性
v-if:根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定/组件被销毁并重建。如果元素是,将提出它的内容作为条件块
v-for:基于源数据多次渲染元素或模板块
v-on:绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。 缩写:@
v-bind:动态的绑定一个或多个特性,或一个组件prop到表达式
v-model:在表单控件或组件上创建双向绑定
v-pre:跳过这个元素和它的子元素的编译过程。可以用来显示原始Mustache标签。跳过大量没有指令的节点会加快编译
19、ngRoute和ui-route相比
$when/$state:路由状态配置的时候
$routeParams/$stateParams:带参数的时候的配置
$routeProvider/$stateProvider:依赖注入的模块
ng-view/ui-view:页面中绑定到指令
详情:
uiRoute中可以嵌套更深层次的路由,也就是路由中可以由路由(大致有两种情况:1.横向的、2.纵向的)//嵌套路由、多视图路由
ngRoute中就不能嵌套更深的路由
20.angularjs中服务的正确写法是?
A、ng-service
B、ng-server
C、ng-command√
D、ng-class
21.angularjs中关于服务的说法错误的是
A、避免全局对象污染
B、能注入到其它组件
C、避免代码分散到各处
D、主要进行DOM操作和数据绑定 √
22.angularjs中指令中的compile参数是在什么时候运行的?
A、在生成DOM前扫描并生成
B、在生成DOM中扫描并生成
C、在生成DOM后扫描并生成 √
D、以上都不是
23.angularjs中control间通信最好使用什么方式?
A、回调
B、全局变量
C、广播 √
D、函数调用
24.angularjs中的服务实质上是
A、网络服务
B、单例对象 √
C、接口对象
D、函数调用
25.angularjs指令中compile主要是做什么用的?
A、绑定DOM√
B、数据绑定
C、定义模版
D、以上都不是
26.angularjs中的$apply()的作用是?
A、手动绑定外部数据
B、格式化数据
C、使方法生效 √
D、发送消息给其它controller
27.AngularJS中指定控制器的是哪个指令?
A、ng-route
B、ng-template
C、ng-model
D、ng-controller√
28.关于angularjs说法,错误的是
A、前端mvc,极大降低前端开发的耦合
B、极大的丰富了dom操作 √
C、实现了数据双向绑定
D、实现了依赖注入
29.AngularJS中页面中用于数据绑定的占位符是什么?
A、%% %%
B、## ##
C、{{ }}√
D、&& &&
30.angularjs中定义服务哪种方法是错误的?
A、$provide
B、factory
C、service
D、$instance√
31.ng-bind与{{}}有区别吗?B
A、有区别,在我们载入数据的时候ng-bind会出现一瞬间的乱码
B、有区别,在我们载入数据的时候{{}}会出现一瞬间的乱码
C、没有什么区别,都可以将我们获取的数据分配到页面上
32.【多选】以下说法正确的是AB
A、angular.toJson()将对象转成字符串
B、Angular.fromJson()将字符串转成对象
C、angular.toJson()将字符串转成对象
D、Angular.fromJson()将对象转成字符串
33.以下angular遍历数据函数书写正确的是(key代表键值,value代表键名)C
A、angular.foreach($data as $key=>$value)
B、angular.foreach($data as $value=>$key)
C、angular.forEach(data,function(key,value){})
D、angular.forEach(data,function(value,key){})