dva.js 用法总结
dva.js是阿里前端团队开发的一个基于react、redux、webpack的一个前端框架,他能够实现react-redux-webpack环境一键部署,能帮前端工程师节省不少环境搭建的时间。而且经过优化的redux跟原生redux相比使用起来要方便不少。这里来大致讲一下dva.js的用法。
dva.js官方案例:
https://ant.design/docs/react/practical-projects-cn
github:
先全局安装dva-cli
cnpm install dva-cli -g
使用dva-cli初始化应用:
dva new your-project-name
然后进入项目目录,新建文件dev.bat,内容如下:
call npm run start
保存后双击dev.bat即可开启开发服务器,并出现初始页面。
这里我们用一个加法计数器来作为演示。
1、routes文件夹内新建demo.js以及demo.css
import {connect} from 'dva'
import styles from './demo.css' function demo({dispatch,num}) { //dispatch用来操作数据模型。 function Add() {
console.log(num);
dispatch({
type:"num/add", //num代表数据模型,add代表方法。这里可以通过payload来传递参数。
// payload: 1,
})
} return(
<div className={styles.checkNum}>
<input type="button" value="+" onClick={Add}/>
<input type="input" value={num}/>
<input type="button" value="-"/>
</div>
)
} export default connect( //将组件与数据模型进行连接。
({num})=>({num})
)(demo);
demo.css:
.checkNum{
width: 300px;
height: 100px;
border: 1px solid #ccc;
}
2、models文件夹新建文件num.js
export default {
namespace:'num',
state:0,
reducers:{
'add'(state){ //num可以理解为数据模型,state是数据的初始值,add是方法名,用来修改num用的。如果需要传参可参考官方教程。(payload)
state++;
return state
}
}
}
3、前往src下的index.js,注册num数据模型:
import dva from 'dva';
import './index.css'; // 1. Initialize
const app = dva(); app.model(require('./models/num').default);
app.router(require('./router').default);
这步如果粗心的话就容易遗漏,务必小心。
4、src文件夹下的router.js内添加demo路由:
import React from 'react';
import { Router, Route, Switch } from 'dva/router';
import IndexPage from './routes/IndexPage';
import demo from './routes/demo' function RouterConfig({ history }) {
return (
<Router history={history}>
<Switch>
<Route path="/" exact component={IndexPage} />
<Route path="/demo" exact component={demo} /> </Switch>
</Router>
);
} export default RouterConfig;
这时,访问http://localhost:8000/#/demo即可看到成果。
请大家自行完成减法功能并看懂官方案例以巩固知识。
想要进一步了解dva.js请看下一篇:dva.js的数据获取与渲染。
http://www.cnblogs.com/axel10/p/8548305.html
dva.js 用法总结的更多相关文章
- dva.js 用法详解:列表展示
本教程案例github:https://github.com/axel10/dva_demo-Counter-and-list/tree/master 这次主要通过在线获取用户数据并且渲染成列表这个案 ...
- dva.js 上手
来源:https://pengtikui.cn/dva.js-get-started/ ——------------------------------------------------------ ...
- xss其他标签下的js用法总结大全
前段时间我遇到一个问题,就是说普通的平台获取cookie的语句为↓ Default <script src=js地址></script> 1 <scr ...
- jquery.validate.min.js 用法方法示例
页面html 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- jquery.cookie.js 用法
jquery.cookie.js 用法 一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 j ...
- 移动端下拉刷新,iScroll.js用法(转载)
本文转载自: iScroll.js 用法参考 (share)
- jq和js用法:入口写法
jq和js入口写法demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- iScroll.js 用法参考 (share)
分享是传播.学习知识最好的方法 以下这篇文章是iScroll.js官网的中文翻译,尽管自己英文不好,但觉得原作者们翻译的这个资料还是可以的,基本用法介绍清楚了.如果你英文比较好的话,可以看看官网的资料 ...
- velocity.js用法整理1
velocity.js 此框架相对于JQ的运动算法, 有很大的优势. 例如,A和B两个元素,position:absolute; top:0; 现在让A元素用JQ的animate,B用velocit ...
随机推荐
- C# winform中Show()和ShowDialog()的区别
项目实际开发中需要根据不同的应用场景利用Show和ShowDialog,尤其是三级弹窗,慎用ShowDialog,否则会导致关闭第三级窗体时,自动关闭第二级,解决方案就是在第一级窗体弹出时采用Show ...
- 初识vue——语法初解
这次我们按照官网上的教程对vue的语法进行一个初步的了解: 一.声明式渲染 Vue.js的核心是一个允许采用简洁的模板语法来声明式的将数据渲染仅DOM的系统: 1.我们在HelloWorld里面输入下 ...
- Redis限制在规定时间范围内登陆错误次数限制
在博客里之前有过一篇文章是 <PHP结合Redis来限制用户或者IP某个时间段内访问的次数>,这篇文章的思路也是一样的.看下代码吧 //登录错误次数校验 $key = "logi ...
- ios设备触发虚拟键盘输入后position:fixed 无效的一些简单另类的解决方法。
首先看一下我要解决的问题,第一张图是正常的情况下,第二张图是点击了输入框之后的情况,就是要解决此问题~! 百度了一下解决方法,好像有以下的一些方法: 1. iscroll 2. Jquery Mobi ...
- 五子棋的判断输赢规则 -- java编程(简单优化完整版)
五子棋的判断输赢规则代码 -- 完整优化版 一.前言 之前浏览过很多网上的方法,但总找不到比较完整,也get不到其他大神的思路,就直接画图分析,分析了之后就有了如下的代码,当然还想到更加优化的一种,只 ...
- Codeforces785E - Anton and Permutation
Portal Description 对一个长度为\(n(n\leq2\times10^5)\)的数列\(a\)进行\(m(m\leq5\times10^4)\)次操作,数列初始时为\(\{1,2,. ...
- 前端时间戳timestamp相关总结:
一.JavaScript获取当前时间戳的方法 第一种方法:var timestamp = Date.parse(new Date());结果:1280977330000 第二种方法:var times ...
- hadoop配置遇到问题的解决
1. ssh localhost: 不能登陆:将错误提示中的文件全部删除.原因:登陆过远程主机 2. 问题: 伪分布式datanode启动不了:在datanode的log日志文件出现以下错误提示: ...
- java读取文件乱码
List<String> lines=new ArrayList<String>(); BufferedReader br = new BufferedReader(new F ...
- Oracle trunc() 函数处理数字、日期的整理
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...