❶ MVVM是前端还是后端范畴
如果你是从整个服务角度宏观来看的话,MVVM中的M和VM在后端,V在前端(也有人认为VM不一定在后端,我倾向于VM和M的关系更紧密,实现也一般都在后端)。
❷ 前端的mvvm是什么意思
View一般就是我们平常说的HTML文本的Js模板,里面可以嵌入一些js模板的代码,比如Mustache,比如jstl类似的模板伪代码
ViewMole层里面就是我们对于这个视图区域的一切js可视业务逻辑,举个例子,比如图片走马灯特效,比如表单按钮点击提交,这些自定义事件的注册和处理逻辑都写在ViewMole里面了
Mole就更简单了,就是对于纯数据的处理,比如增删改查,与后台CGI做交互
那么什么是MVVM框架呢??一般他们都是这么做的
1. 定义一串所谓的伪模板代码,例如通过className标注,或者自定义tag的方式,将一段html文本区域给标注声明起来,意思就是喊一嗓子,“喂,兄弟们,这块地方我占了,要拉屎去别处拉去”
2. 通过类似jstl之类lamda表达式,来做js模板,“拜托伙计,天堂有路你不走,非要自己搞一套,你就不能暴露接口让大家用自己的模板语言,比如Mustache或者jtpl吗?”
3. 很傻比的封装一串自己的所谓数据模块组件,与不同类型的数据源做数据传输和适配,一般都不会分层很清晰,加入后台数据字段改了,写框架的都没脑子的,从来不做数据字段的自定义适配(举个例子,原来后台传递的字段是person.userName,现在改成了小写,person.username,你就傻逼的去吧模板再改一下吧,其实要解决这个问题,非常简单,在MVVM层中引入一层DO,领域对象层,Mole到DO之间还有一层转换就可以搞定这个问题)
4. 非不暴露自己的自定义事件模型,就是那个观察者模式啦,自己乱七八招在页面上绑定一堆form change之类的事件,以实现View与Mole的单向绑定
5. 所谓的双向绑定,也就是OOP语言中早被烂透了的getter,setter模型,ES5+可以用defineProperty,低版本就需要自己在js object赋值的时间做写死代码方式的处理了
❸ Web前端开发:为何选择MVVM而非MVC
在MVC原始报告中指出:view永远不会知道用户输入,比如鼠标操作和按键。很显然,在Web前端,你无法做到这一点,因为Web的程序中,用户的输入必须通过监听窗口、文档和元素上的事件来获得。——而这些东西常常被认为是View。于是一些奇怪的认识诞生了,比如认为Controller应该是View操作Model的中介。我曾经尝试设计一个编程模型让所有的事件流经Controller,但是事实上我发现这样的做法非常糟糕。——这个尝试让我从MVC转向了MVVM。John Gossman(WPF的架构师)在他的文章中提到,Model/View/ViewModel中的View表示可见元素,按钮,窗体,图形或者GUI中更复杂的控件,它会对快捷键进行编码,并且控件自身会管理跟输入设备的交互——这在MVC中本该是Controller负责的(现代GUI环境中发生在Controller上的事情是很长的题外话……我倾向于认为它只是隐藏到后台了,它仍然存在,但是我们不需要像是1979年那样考虑那么多事情了)MVC这样的结构的正确性在于,任何界面都需要面对一个用户,而Controller “是用户和系统之间的链接”。在经典MVC中,Controller要做的事情多数是派发用户输入给不同的View,并且在必要的时候从View中获取Editor来更改Model,而Web以及绝大多数现在的UI系统中,Controller的职责已经被系统实现了。下面的图片说明了这样的演进过程:总而言之,对于MVC为1979年的SmallTalk设计 界面和程序都由同一种语言编写用户输入完全由程序编写者来处理View是单纯用于显示对于MVVM为2005年的WPF设计
❹ Web前端真的需要用MVVM框架吗
这个完全看业务方向和公司需求, 我做前端4年了,也是从BAT出来,但是没有过那么强烈的需求做 mv* 神马的。 掌握好WEB开发基本原理和基础前端技术,夯实编程功底显得更加重要,你完全可以轻松的根据自己所在公司的业务特点开发一套更加贴合自己的 MVVM 框架。
开课吧有一些实战案例的视频教程,个人感觉内容还不错,推荐你去试听一下,希望你能够在web开发的道路上越走越远!
❺ mvc和mvvm是前端还是后端
你这个说法其实不严密,MVC这种三层结构本身与前后端无关,仅仅前端自己,也可以用MVVM三层来实现,像React、Vue都是这样的。
如果你是从整个服务角度宏观来看的话,MVC里面的M和C在后端,V在前端;MVVM中的M和VM在后端,V在前端(也有人认为VM不一定在后端,我倾向于VM和M的关系更紧密,实现也一般都在后端)
❻ 前端mvvm框架怎么兼顾seo
方案1,你可以在服务器端运行一个浏览器实例来执行你的应用里的Javascript,然后从DOM中卸下HTML(使用PlantomJS或者WebLoop)。 或者你可以创建一个服务端生成的专供爬虫的替代性HTML版本。
前者, 需要你为每一个页面加载建立一个headless浏览器(或者tab),比起直接产出HTML,这样会花费很多的时间和系统资源。 取决于你使用的框架,需要不少精力来决定什么时候页面已经准备好了。 你可以缓存页面,但是如果页面经常改变,那么缓存只能起到非常有限的优化作用,而且会增大复杂度。
后者(创建一个替代性的服务器端站点)对简单站点而言足够了
❼ 能通俗易懂的介绍一下前端的mvc和mvvm么
一、MVC
MVC模式的意思是,软件可以分成三个部分。
唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular和Ember都采用这种模式
❽ 前端mvvm框架有哪些
MVVM框架:angularjs emberjs react vue等
https://segmentfault.com/q/1010000000307033
❾ 什么是前端mvc,MVVM,MVP哦.弄得我头晕
所以你可以说MVVM是MVC的一种。但是缺少了MVC中间的C部分。怎么说了,说好听点,是想为你省事,帮你做了点你不需要的东西,但这个新东西,总要有个概念,好方便按照他的约束来玩。所以多出新名词。
说难听点,没事找事。
这如同,有人说坚持,B/S不是C/S,这不算装B。但是说B/S和C/S没有隶属关系,B/S不能称为一种C/S的模式,就是装B了。
你搞清楚MVC先,然后搞清楚后面的名词,和前面的名词差别。别反过来学习。否则会郁闷的。
❿ 现在国内哪些大型网站是用前端mvvm框架开发
几乎都用到,而且还会不同站点用不同的框架,估计是不同项目组的原因, 网络,淘宝,京东,腾讯网,网易都用到MVVM框架