当前位置: 首页 > news >正文

常州模板网站建设咨询/网络推广的方式有哪些?

常州模板网站建设咨询,网络推广的方式有哪些?,长沙网站建设 个人,交做网贷的网站目录 1,MVC2,前端MVC的困难3,Flux4,Redux 1,MVC 是一个解决方案,用于降低 UI 和数据关联的复杂度。 在早期前后端未做分离时,服务端会响应一个完整的HTML,包含页面需要的所有数据。而…

目录

  • 1,MVC
  • 2,前端MVC的困难
  • 3,Flux
  • 4,Redux

1,MVC

是一个解决方案,用于降低 UI 和数据关联的复杂度。

在早期前后端未做分离时,服务端会响应一个完整的HTML,包含页面需要的所有数据。而浏览器仅承担渲染页面的作用,整体流程也就是服务端渲染

其中服务端的处理流程:处理请求,并将需要的数据嵌入到 HTML,再返回给浏览器。

为了降低这个过程的复杂度,出现了 MVC 模式。

  • 服务端收到不同的请求,分发给不同的 Controller(控制器)来处理,并组装这次请求需要的数据。
  • Model 层会将数据组装为,用于UI渲染的数据模型。
  • View 层会将数据模型组装到 HTML 中,返回给浏览器。

前后端分离的部分原因

MVC 模式中,将数据模型为组装到 View 视图层生成最终的 HTML,这一步越来越复杂了。
所以想直接给前端返回数据,组装数据进行展示的逻辑,交给前端来做。

2,前端MVC的困难

前端框架 VueReact 解决了数据 --> 视图的问题,但 Controller 比服务端复杂的多。

1,前端的 Controller 实际上是在处理用户的操作,而操作场景是复杂的,改变数据的情况太多了。

1,不同的组件有不同的操作和响应,每一个事件处理程序做的事情也都不一样。
2,比如,服务器只需要知道是否调用了某个接口,并控制器来处理逻辑。
而前端触发调用接口的场景可能不止一个:点击按钮触发,计时器触发,或其他逻辑执行完后再触发。

2,前端框架使用的是单向数据流,在共享数据时,只能将数据提升到顶层组件,并逐层传递,比较繁琐。

所以产生了上下文(React.createContext / prvide/inject)来提供共享数据。但还是有一些缺陷,尤其对中大型应用来说。

  • 上下文更多应用在局部的、层级关系较深的组件间通信,并且是为了数据传递,很少有更改传递数据的情况。
  • Vuex、Redux 是为了提供了更完整的状态管理解决方案,也包括时间旅行(调试,状态回溯)、模块化等。

3,Flux

FaceBook 提出的数据解决方案,最大的历史意义是引入了 action 概念。

  • action是一个对象,用于描述要做的事情,是触发数据变化的唯一原因
  • store 表示数据仓库(全局单例模式),存储共享数据。会根据不同的 action 更改仓库的中的数据。
// 示例
cosnt loginAction = {type: "login",payload: {loginId:"admin",loginPwd:"123123"}
}const deleteAction = {type: "delete",payload: 1  // 用户id为1
}

4,Redux

Flex 基础上引入了 reducer,用于根据 action 来处理数据,处理后的数据会被仓库重新保存。

对比服务端的 MVC 流程,action 相当于触发请求,reducer 相当于 Controller。

和 vuex 的对比:

ReduxVuex
StoreStore
ReducerMutation
ActionAction

简单使用:

import { createStore } from "redux";function reducer(state, action) {console.log(action.payload);if (action.type === "add") {return state + 1;} else if (action.type === "minus") {return state - 1;}return state;
}const store = createStore(reducer, 10);// 分发 action
store.dispatch({ type: "add", payload: "附加的数据" });
// 获取最新的 store
console.log(store.getState());

对比 Vuex

const store = createStore({state: {count: 0},mutations: {increment (state, { amount }) {state.count += amount}},actions: {increment ({ commit }, payload) {// 触发 mutationcommit('increment', payload)}}
})// 分发 action
store.dispatch('increment', {amount: 10
})// 以对象形式分发
store.dispatch({type: 'increment',amount: 10
})

以上。

http://www.jmfq.cn/news/5328775.html

相关文章:

  • 南通精诚建设集团有限公司网站/yoast seo
  • 如何建设自己的摄影网站/软文营销文章300字
  • 北京专业建设网站公司/免费二级域名生成网站
  • 房山网站建设服务/seo入门基础教程
  • 福建宏盛建设集团有限公司网站/如何做线上营销
  • 高职考技能考网站建设试题/网站优化 福州
  • 广州黄埔网站建设公司/爱站工具包下载
  • 上海网站建设流/服务营销
  • 建设银行网站开通查询密码/长春关键词优化公司
  • 网站建设考察报告/推广费用一般多少钱
  • 贾汪建设局网站/谷歌搜索引擎入口google
  • 公司电子商务网站建设规划方案/竞价托管外包代运营
  • 合肥高端网站建设/媒体软文推广平台
  • 九江网站建设哪家公司好/海洋seo
  • 电子商务网站建设费用/电商seo什么意思
  • 思想政治教育专题网站建设/seo运营是做什么的
  • 网站建设是 口号/网络营销文案策划都有哪些
  • 网站建设期末作业/百度指数怎么算
  • 宜昌市住房和城乡建设厅网站/免费网站统计代码
  • 一般纳税人网站建设多少税率/合肥网站快速排名提升
  • 计算机编程与网站建设/网络营销策略内容
  • 微网站建设教程/重庆seo俱乐部
  • 企业建设高端网站的目的/企业文化
  • 成都网站建设 今网科技/软文广告有哪些
  • 山东省职业能力建设处网站/推广方案模板
  • 存储网站建设/竞价排名服务
  • 山东省水利建设市场信用信息平台网站/论坛推广案例
  • 网站开发建设兼职/seo服务公司上海
  • 肇庆高要建设局网站/百度数据指数
  • 商丘住房和城乡建设厅网站/seo刷关键词排名软件