简述MVC与MVVM设计模式的区别

简述MVC与MVVM设计模式的区别
MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller: Model负责存储、定义、操作数据; View用来展示给用户,并且和用户进行交互; Controller是Model和View的协调者,Controller把Model中的数据拿过来给View使用。 MVC是包括view视图层、controller控制层、model数据层。各部分之间的通信都是单向的。 View 传送指令到 Controller Controller ...

用CSS画三角形和平行四边形

用CSS画三角形和平行四边形
在网页设计中使用图形而非图片可以提高性能,今天来看看如何用CSS画一些简单的三角形和平行四边形。 先来看如何画一个三角形,在画三角形之前,我们看看下面的代码: <h2>1.triangle basic shape</h2> <div class="basic_triangle"></div> .basic_triangle { width:50px; height:50px; border-width:100px 100px 100px 100px; border-style:solid;...

全面解析js中的for循环

全面解析js中的for循环
JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for(var index=0;index<myArray.length;index++) { console.log(myArray[index]); } 自从JavaScript5起,我们开始可以使用内置的forEach方法: myArray.forEach(function (value) { console.log(value); }); 写法虽然简单了很多,但是有很多的短处:不能中断循环(使用break或continue) &...

JavaScript break跳出多重循环以及退出each循环

JavaScript break跳出多重循环以及退出each循环
<script type="text/javascript"> outerloop://命名外圈语句 for(i=0; i<10; i++) { innerloop://命名内圈语句 for(j=0; j<10; j++) { // 跳出内圈循环 if(j>3){break;} // 跳出内圈循环 if(i==2){break innerloop;} // 跳出外圈循环 if(i==4){break outerloop;} document.write("i = "+i+" , j = "+j+"...

ES6的Object.assign()详解

ES6的Object.assign()详解
混入( Mixin )是在 JS 中组合对象时最流行的模式。在一次混入中,一个对象会从另一个对 象中接收属性与方法。很多 JS 的库中都有类似下面的混入方法: function mixin(receiver, supplier) { Object.keys(supplier).forEach(function(key) { receiver[key] = supplier[key]; }); return receiver; } mixin() 函数在 supplier 对象的自有属性上进行迭代,并将这些属性复制到 receiver 对 象(...

8条css技巧

8条css技巧
1、兼容所有浏览器显示半透明效果的方法 <div class="transparent"></div> .transparent { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); -moz-opacity: 0.5; -khtml-opacity: 0.5; opacity: .5; width: 200px; height: 200px; margin: 0 auto; background: url("../img/pic.jpg"); } 2、_height,_width的作用 使用_height解决float的div不闭合的问题,可以将_...

纯 CSS 实现多行文字截断

纯 CSS 实现多行文字截断
做响应式系统设计的时候遇到需要对标题进行多行文字截取的效果 看似十分简单的标题截断效果,但是竟然没有一个统一 CSS 属性实现标准,需要用到一些奇淫妙计来实现,一般来说,在做这样文字截断效果时我们更多是希望: 兼容性好,对各大主流浏览器有好的支持 响应式截断,根据不同宽度做出调整 文本超出范围才显示省略号,否则不显示省略号 省略号位置显示刚好 基于上述的准则,下面我就讲介绍...

Vuejs如何实现双向绑定

Vuejs如何实现双向绑定
vuejs如何追踪对象的属性变化,利用es5的Object.defineProperty, 数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。 Object.defineProperty是一个无法被shim的属性,就是说它无法被降级使用,这也是vuejs不支持ie8以下的根本原因。 Object.defineProperty...

ES6 Proxy怎么使用全剖析

ES6 Proxy怎么使用全剖析
ES6 Proxy proxy者,代理也。我的理解,就是加壳,就是绿林、就是收费站。 假设一个函数,好比一条高速公路,可以从A地到B地。具备的功能就是联通。具备的属性就是名字、长度、几车道  等。如果没有代理,什么也不做,那么你不会对从他上面 通过的那些川流不息的车有任何影响。 如果代理(收费站)介入,将产生如下变化: 1.基础篇 通过收费站,才能上这条公路,收费站同时记录...

js实现hash

js实现hash
Hash = function () { } Hash.prototype = { constructor: Hash, add: function (k, v) { if (!this.hasOwnProperty(k)) { this[k] = v; } }, remove: function (k) { if (this.hasOwnProperty(k)) { delete this[k]; } }, update: function (k,...
Copyright © 前端技术分享休闲玩耍去处分享-大一网 保留所有权利.   Theme  Ality

用户登录 ⁄ 注册

分享到: