<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MVVM on ZiYang FrontEnd Interview</title><link>https://fe-interview.pangcy.cn/tags/mvvm/</link><description>Recent content in MVVM on ZiYang FrontEnd Interview</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 06 Mar 2025 13:07:39 +0800</lastBuildDate><atom:link href="https://fe-interview.pangcy.cn/tags/mvvm/index.xml" rel="self" type="application/rss+xml"/><item><title>Vue的MVVM模式与MVC/MVP有何区别？</title><link>https://fe-interview.pangcy.cn/docs/framework/vue2/vue2-07/</link><pubDate>Tue, 04 Mar 2025 07:00:27 +0000</pubDate><guid>https://fe-interview.pangcy.cn/docs/framework/vue2/vue2-07/</guid><description>&lt;h3 id="考察点分析">考察点分析 &lt;a href="#%e8%80%83%e5%af%9f%e7%82%b9%e5%88%86%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>&lt;strong>核心能力维度&lt;/strong>：框架设计原理、数据流管理能力、架构模式理解深度&lt;br>
&lt;strong>技术评估点&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>架构层级的职责边界划分&lt;/li>
&lt;li>数据流向的管控方式（单向/双向）&lt;/li>
&lt;li>视图层与数据层的解耦机制&lt;/li>
&lt;li>框架层面的自动化能力差异&lt;/li>
&lt;li>状态变更的传播路径&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="技术解析">技术解析 &lt;a href="#%e6%8a%80%e6%9c%af%e8%a7%a3%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;h4 id="关键知识点层级">关键知识点层级 &lt;a href="#%e5%85%b3%e9%94%ae%e7%9f%a5%e8%af%86%e7%82%b9%e5%b1%82%e7%ba%a7" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h4>&lt;p>MVVM设计思想 &amp;gt; 数据绑定机制 &amp;gt; 观察者模式 &amp;gt; 命令模式 &amp;gt; 中介者模式&lt;/p>
&lt;h4 id="架构原理剖析">架构原理剖析 &lt;a href="#%e6%9e%b6%e6%9e%84%e5%8e%9f%e7%90%86%e5%89%96%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h4>&lt;p>&lt;strong>MVC&lt;/strong>（Model-View-Controller）：&lt;/p>
&lt;ul>
&lt;li>Controller作为业务逻辑入口，接收用户事件&lt;/li>
&lt;li>Model变更通过观察者模式通知View更新（Passive View模式）&lt;/li>
&lt;li>典型数据流：View -&amp;gt; Controller -&amp;gt; Model -&amp;gt; View&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>MVP&lt;/strong>（Model-View-Presenter）：&lt;/p>
&lt;ul>
&lt;li>Presenter完全接管View的展示逻辑&lt;/li>
&lt;li>View通过接口与Presenter通信&lt;/li>
&lt;li>严格单向数据流：View事件 -&amp;gt; Presenter -&amp;gt; Model -&amp;gt; Presenter -&amp;gt; View&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>MVVM&lt;/strong>（Model-View-ViewModel）：&lt;/p>
&lt;ul>
&lt;li>ViewModel通过数据绑定与View自动同步&lt;/li>
&lt;li>双向绑定实现：View输入自动更新ViewModel，ViewModel变更自动反映到View&lt;/li>
&lt;li>数据流形成闭环：View ↔ ViewModel ↔ Model&lt;/li>
&lt;/ul>
&lt;h4 id="核心差异点">核心差异点 &lt;a href="#%e6%a0%b8%e5%bf%83%e5%b7%ae%e5%bc%82%e7%82%b9" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h4>&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>维度&lt;/th>
 &lt;th>MVC&lt;/th>
 &lt;th>MVP&lt;/th>
 &lt;th>MVVM&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>视图依赖&lt;/td>
 &lt;td>强依赖Controller&lt;/td>
 &lt;td>接口依赖&lt;/td>
 &lt;td>数据绑定&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>测试复杂度&lt;/td>
 &lt;td>高（需模拟视图）&lt;/td>
 &lt;td>中&lt;/td>
 &lt;td>低&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>代码量&lt;/td>
 &lt;td>多（胶水代码）&lt;/td>
 &lt;td>较多&lt;/td>
 &lt;td>少&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>数据流向&lt;/td>
 &lt;td>单向循环&lt;/td>
 &lt;td>严格单向&lt;/td>
 &lt;td>双向自动&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>常见误区&lt;/strong>：&lt;/p></description></item></channel></rss>