美文网首页
前端框架相关知识

前端框架相关知识

作者: 行走的蛋白质 | 来源:发表于2019-12-25 17:48 被阅读0次
  • 什么是 MVVM,比之 MVC 有什么区别?
  • 什么是 Virtual DOM,为什么 Virtual DOM 比原生 DOM 快?
  • 前端路由原理,两种实现方式的区别?

  • MVC
    1.模型-Model 编写程序应有的功能(实现算法),进行数据管理和数据库设计等等
    2.视图-View 图形界面的展示
    3.控制器-Controller 负责转发请求,对请求进行处理
  • MVVM Model-View-ViewModel
    • Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。
    • View 代表UI 组件,它负责将数据模型转化成UI 展现出来。
    • ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。
    • 在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
    • ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
Virtual DOM

相较于 DOM 来说,操作 JS 对象会快很多,我们可以通过 JS 来模拟 DOM

const ul = {
    tag: 'ul',
    props: {
        class: 'list'
    },
    children: {
        tag: 'li',
        children: '1'
    }
}
// 对应 DOM 为:
<ul class="list">
    <li>1</li>
</ul>   
  1. Virtual DOM 可以判断新旧两个 JS 对象的最小差异,并实现局部更新 DOM,从而提升性能
  2. 将 Virtual DOM 作为一个兼容层,让我们还能对接非 Web 端的系统,实现跨端开发。
  3. 通过 Virtual DOM 我们可以渲染到其他的平台,比如实现 SSR、同构渲染等等。
  4. 实现组件的高度抽象化
路由

本质就是监听 URL 的变化,然后匹配相应的路由规则,显示相应的页面,且无需刷新页面

  • hash 模式
    www.test.com/#/ 就是 hash URL,当 # 后面的 hash 值发生变化时,可以通过 hashChange 事件监听到 URL 的变化从而实现页面的跳转,并且无论 hash 值如何变化,服务端接收到的 URL 请求永远是 www.test.com
    hash 模式相对简单且兼容性较好
window.addEventListener('hashchange', () => {
  // ... 具体逻辑
})
  • history 模式
    history 模式是 html5 新推出的功能,主要是用 history.pushState 和 history.replaceState 来改变 URL
    通过 history 模式改变 URL 同样不会引起页面的刷新,只会更新浏览器的历史记录
// 新增历史记录
history.pushState(stateObject, title, URL)
// 替换当前历史记录
history.replaceState(stateObject, title, URL)

当用户做出浏览器动作时,比如点击后退按钮时会触发 popState 事件

window.addEventListener('popstate', e => {
  // e.state 就是 pushState(stateObject) 中的 stateObject
  console.log(e.state)
})
  • hash 模式和 history 模式的区别
  1. hash 模式只可以更改 # 后面的内容,history 可以通过 API 设置任意同源的 URL
  2. history 可以通过 API 添加任意类型的数据到历史记录中,hash 模式只能更改哈希值也就是字符串
  3. hash 模式无需后端配置并且兼容性好,history 在用户手动输入地址并且刷新页面的时候会发起 URL 请求,后端需要配置 index.html 页面用于匹配不到静态资源的时候
React 和 Vue 的区别
  1. Vue 本质是一个 MVVM 框架,由 MVC 发展而来
    React本质是前端组件化框架,不是一个完整的 MVC 框架,可以认为是 MVC 中的 V
  2. Vue 的表单可以用 v-model 进行双向绑定,React 是单向数据流,由于我们一般会使用 Vuex 和 Redux 等单向数据流的状态来管理框架,因此很多时候我们感受不到这一点的区别
  3. Vue 修改状态比较简单,React 需要用 setState 来改变状态
  4. React 需要使用 JSX 语法相比 Vue 有一定的难度,Vue使用模版语法
  5. Vue 的定位就是降低前端开发的门槛,React 是让用户去接受他的思想

相关文章

  • 前端框架相关知识

    什么是 MVVM,比之 MVC 有什么区别? 什么是 Virtual DOM,为什么 Virtual DOM 比原...

  • 微前端-技术方案总结

    开始写这篇文章的起因是公司的大前端部门开始实现公司自己的微前端框架在和大前端部门的合作中,对微前端相关的知识和技术...

  • 前端框架Bootstrap--按钮和折叠插件

    以下是前端框架Bootstrap相关的按钮和折叠插件知识,希望对读者们有所帮助: 一. 按钮 可以通过按钮插...

  • 前端知识框架

    一直都是很懒的人,懒得去写笔记,写文章,感觉应该是要有一些沉淀了。计划在简书上写一些技术相关的文章,先整理下前端相...

  • 前端框架复习相关

    1、ES6的新特性及其作用 (1)、let和consta、let与var类似,但只在let命令所在的代码块内有效b...

  • React系列(一):React简介与初始化

    本文包含对前端热门框架——React的简单介绍、相关的前置知识点的梳理、以及React的版本选择。 React官网...

  • 好程序员web前端培训教程分享三大前端框架相关问题

    好程序员web前端培训教程分享三大前端框架相关问题,三大前端框架,有没有哪个框架的组件间交互像js的方法传值一样简...

  • 最全的前端相关公众号整理

    前端公众号大全 这里汇集专注前端知识分享的相关公众号,帮助大家了解前端知识发展趋势和业界相关动态。相信所有的公众号...

  • 二、flask开发基础与入门

    一、web开发基础 1、前端知识 前端开发基础: HTML CSS JavaScript 前端常用的库与框架: b...

  • 无标题文章

    1.这个月复习了VUE 的相关知识点 然后将之前不是太懂的知识点补了起来 Vue是国人开发的一款前端框架,他是利用...

网友评论

      本文标题:前端框架相关知识

      本文链接:https://www.haomeiwen.com/subject/ncqcoctx.html