Dva应用框架

简介: Dva应用框架
什么是Dva?

dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架

官方地址:https://dvajs.com/

// 1.导入dva
// 因为dva里面内置了react-router,react,react-Dom,react-saga,react-redux,因此这些都再次导入
import dva,{connect} from 'dva'
// 2.创建实例对象
let app  =  new dva();
let homeModel = {
  // 指定命名空间区分不同的model
  namespace:'home',
  // 保存state中的数据
  state: {
    count: 666
  },
  // 相当于react-reducer,保存当前命名空间的一个reducer
  reducers:{
    // add是key,相当于一个type
    // {type:Add, playload}
    add:(state,action)=>{
      return { count: state.count + action.count }
    },
    sub:(state,action)=>{
      return { count: state.count - action.count }
    }
  }
}
const mapStateToProps = (state) =>{
  return{count: state.home.count}
}
const mapDispatchToProps = (dispatch) =>{
  return {
    increment(){
      dispatch({type:"home/add",count:1})
    },
    decrement(){
      dispatch({type:"home/sub",count:1})
    }
  }
}
const AdvHome = connect(mapStateToProps,mapDispatchToProps)(Home)
//3.定义组件
function Home(props){
  return(
    <div>
      Home
      <p>{props.count}</p>
      <button onClick={()=>props.increment()}>增加</button>
      <button onClick={()=>props.decrement ()}>减少</button>
    </div>
  )
}
function App(){
  return(
    <div>
      <AdvHome/>
    </div>
  )
}
// 4.注册路由表,告诉dva要渲染那个组件
app.router(()=><App/>);
// 相当于react-saga,使用model,告诉dva使用哪个model
app.model(homeModel)
//5.启动dva并且把它 渲染到index.html的root上
app.start('#root')

73.png

运行效果.png


72.png

增加.png


71.png

减少.png

感觉这个玩意咋说呢,写法有点复杂,但是核心思想很值得借鉴,不过有点耗费时间成本,我今天因为reducers写成了reducer找了半小时bug,差点把我气坏了,主要是也没有任何的报错提示,难怪state中的数字可以显示,但是按按钮一直效果,气死我了


目录
相关文章
|
JavaScript 前端开发
Dva 初体验
dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。
371 0
|
9月前
|
前端开发
react使用ant desgin 组件实现便利开发
react使用ant desgin 组件实现便利开发
|
JavaScript
【Vue 开发实战】生态篇 # 23:组件库对比:Element UI、Ant Design Vue、iView
【Vue 开发实战】生态篇 # 23:组件库对比:Element UI、Ant Design Vue、iView
297 0
【Vue 开发实战】生态篇 # 23:组件库对比:Element UI、Ant Design Vue、iView
|
9月前
|
开发框架 自然语言处理 前端开发
【第25期】一文读懂React企业级前端应用框架Umi
【第25期】一文读懂React企业级前端应用框架Umi
435 0
|
前端开发 JavaScript 算法
ivx杨帆启航React/Pixi.js/FaaS、Krpano及微服务架构
ivx杨帆启航React/Pixi.js/FaaS、Krpano及微服务架构
326 0
ivx杨帆启航React/Pixi.js/FaaS、Krpano及微服务架构
|
JavaScript 前端开发 算法
这个vue3的应用框架你学习了吗?
前言:前段时间开始落地基于vue3开发的应用,于是在社区留意vue3周边的一些开源项目。无意间看到微众银行WeBankFinTech团队开源的 Fes.js解决方案。在这个方案的设计思路中,快速上手、简单易用、拓展性高这几个特征引起我对项目的进一步探索
324 0
这个vue3的应用框架你学习了吗?
|
9月前
|
开发框架 资源调度 前端开发
Umi框架
Umi框架
388 0
|
存储 JavaScript 前端开发
“探索前后端分离架构下的Vue.js应用开发“
“探索前后端分离架构下的Vue.js应用开发“
132 0

热门文章

最新文章