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 ...
随机推荐
- Jupyter 初体验
简介 Jupyter notebook 是一个非常强大的工具,可以创建漂亮的交互式文档. 安装 安装环境:win7专业版32位系统 + python 3.6.4 安装命令:pip install ju ...
- Flask從入門到入土(一)——程序的基本結構
一.初始化 所有Flask程序都必須創建一個程序實例.Web服務器使用一種名爲Web服務器網關接口的協議,把接收自客戶端的所有請求都轉交給這個對象處理.程序實例書Flask類的對象,創建代碼: fro ...
- 剑指offer面试题-Java版-持续更新
最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...
- Java集合框架(六)—— Collections工具类
操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...
- 买帽子 (hash)
思路:表示数字i出现的次数,在输入的同时记录每个数字出现的次数.最后从0枚举到1000判断第三个是否存在,存在则记录该数字. #include <stdio.h> #include < ...
- SCU 4438 Censor KMP/Hash
题意:给定一个模式串和文本,要求删除所有模式串.可能删除后会形成新的模式串,必须全部删除. 思路1:kmp算法求得失配数组,用一个match数组记录文本串中第i字符和未删除的字符能匹配模式串的长度.这 ...
- FZU - 2150 bfs [kuangbin带你飞]专题一
题意:两个人玩很变态的游戏,将一个草坪的某两个点点燃,点燃的草坪可以向上下左右四个方向扩散,问能否将整块草坪上面的草都点燃.如果能,输出最短时间(^_^他们就能玩更变态的游戏了),如果不能,输出-1. ...
- 如何修改全部DevExpress控件的字体
引用:https://www.devexpress.com/Support/Center/Question/Details/A2761 You can change the default font ...
- 【mysql】phpMyadmin上传文件限制
在使用phpMyadmin导入数据库的时候,因为脚本在上传的时候响应时间过长,导致大于2M的数据偶尔会导入失败.而且大多数默认设置,只能导入2M的数据. 遇到这种情况, 我们可以修改php.ini以及 ...
- Java Web项目(Extjs)报错四
1.Java Web项目(Extjs)报错四 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ...