D3.js(v3)+react框架 基础部分之数据绑定及其工作过程与绑定顺序
1 render() {
2 return (
3 <div id="body" >
4 <p>窗前明月光</p>
5 <p>疑是地上霜</p>
6 <p>举头望明月</p>
7 <p>低头思故乡</p>
8 </div>
9 );
10 }
1 oneMethod() {
2
3 //选择id为body的容器内的所有的p元素,将选择集结果赋值给变量p
4
5 var p = d3.select("#body")
6 .selectAll("p")
7
8
9 // 绑定数值666到选择集上
10 p.datum(666)
11
12 // 在控制台上输出选择集
13 console.log(p)
14
15 //在控制台输出绑定的数据
16 console.log(p.datum())
17 }


1 // 绑定数值666到选择集上
2 p.datum(666)
3 .append("span")
4 .text(function (d, i) { //text的参数是一个无名函数function(d,i),无名函数里的两参数分别代表数据(datum)和索引(index)
5 return " " + d //其实,无名函数两个参数的名称不一定要用d和i,但意义不变,按照惯例,建议写成d和i
6 })

1 oneMethod() {
2
3 //定义数组
4 var dataList = ["光光", "霜霜", "月月", "乡乡"];
5
6 // 选择id为body的容器内的所有的p元素,将选择集结果赋值给变量p
7 var p = d3.select("#body")
8 .selectAll("p")
9
10 // 绑定数据到选择集
11 var update = p.data(dataList)
12 .append("span")
13 .text(function(d,i){
14 return " " + d
15 })
16 .style("color","red")
17
18 }


1 render() {
2 return (
3 <div id="body" >
4 <p></p>
5 <p></p>
6 <p></p>
7 </div>
8 );
9 }
1 oneMethod() {
2
3 //定义数据
4 var dataList = [
5 { id: 3, name: "张三" },
6 { id: 6, name: "李四" },
7 { id: 9, name: "王五" }
8 ];
9
10 // 选择id为body的容器内的所有的p元素,将选择集结果赋值给变量p
11 var p = d3.select("#body")
12 .selectAll("p")
13
14 // 绑定数据并修改p元素的内容
15 p.data(dataList)
16 .text(function(d){
17 return d.id + ":" + d.name
18 })
19
20
21 //根据键函数的规则绑定数据,并修改内容
22 p.data(dataList, function (d) { return d.id})
23 .text(function (d) {
24 return d.id + ":" + d.name
25 })
26
27 }

1 oneMethod() {
2
3 //定义数据
4 var dataList = [
5 { id: 3, name: "张三" },
6 { id: 6, name: "李四" },
7 { id: 9, name: "王五" }
8 ];
9
10 // 选择id为body的容器内的所有的p元素,将选择集结果赋值给变量p
11 var p = d3.select("#body")
12 .selectAll("p")
13
14 // 绑定数据并修改p元素的内容
15 p.data(dataList)
16 .text(function(d,i){
17 return d.id + ":" + d.name
18 })
19
20 //定义数据
21 dataList = [
22 { id: 6, name: "李四" },
23 { id: 9, name: "王五" },
24 { id: 3, name: "张三" }
25 ];
26
27 //根据键函数的规则绑定数据,并修改内容
28 p.data(dataList, function (d) { return d.id})
29 .text(function (d) {
30 return d.id + ":" + d.name
31 })
32 }


D3.js(v3)+react框架 基础部分之数据绑定及其工作过程与绑定顺序的更多相关文章
- D3.js (v3)+react框架 基础部分之认识选择集和如何绘制一个矢量图
首先需要下载安装d3.js : yarn add d3 然后在组建中引入 : import * as d3 from 'd3' 然后定义一个方法,在componentDidMount()这个钩子 ...
- D3.js(v3)+react 制作 一个带坐标与比例尺的柱形图 (V3版本)
现在用D3.js + react做一个带坐标轴和比例尺的柱形图.我已经尽力把代码全部注释上了,最后我也会把完整柱形图代码奉上.如果还有疑惑的,可以去翻看一下我之前介绍的方法,以下方法都有介绍到. 还有 ...
- D3.js(v3)+react 制作 一个带坐标轴与比例尺的折线图
本章使用路径生成器来绘制一个折线图.以中国和日本的GDP数据为例: //数据 var dataList = [ { coountry : "china", gdp : [ [2 ...
- D3.js(v3)+react 制作 一个带坐标与比例尺的散点图 (V3版本)
上一章做了柱形图,https://www.cnblogs.com/littleSpill/p/10835041.html 这一章做散点图. 散点图(Scatter Chart),通常是一横一竖 ...
- 用 D3.js 画一个手机专利关系图, 看看苹果,三星,微软间的专利纠葛
前言 本文灵感来源于Mike Bostock 的一个 demo 页面 原 demo 基于 D3.js v3 开发, 笔者将其使用 D3.js v5 进行重写, 并改为使用 ES6 语法. 源码: gi ...
- 【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据
选择集和数据的关系是 D3 最重要的基础,在[入门 - 第 7 章]时进行过些许讲解,对于要掌握好 D3 是远远不够的.故此开设一个新的分类,专门讨论选择集与数据的关系,包括数据绑定的使用和工作原理, ...
- D3.js v5 Tutorials
D3.js v5 Tutorials D3.js v5 教程 https://github.com/d3/d3/blob/master/API.md CHANGES https://github.co ...
- 跨平台框架与React Native基础
跨平台框架 什么是跨平台框架? 这里的多个平台一般是指 iOS 和 Android . 为什么需要跨平台框架? 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平 ...
- D3.js学习笔记(六)——SVG基础图形和D3.js
目标 在这一章,我们将会重温SVG图形,学习如何使用D3.js来创建这些图形. 这里会包括前面例子中的SVG基础图形以及如何使用D3.js设置图形的属性. 使用D3.js画一个SVG 的 圆 circ ...
随机推荐
- 836. Rectangle Overlap
class Solution { public: bool isRectangleOverlap(vector<int>& rec1, vector<int>& ...
- mysql下载、安装
一.下载 网上下载地址五花八门,为了防止出现不必要的麻烦,建议直接从官网下载.有几点好处: 1.没有任何其他捆绑的软件 2.版本分布清晰,一般建议选择较新版本 mysql官网下载地址:https ...
- Codeforces Round #519 by Botan Investments F. Make It One
https://codeforces.com/contest/1043/problem/F 题意 给你n个数,求一个最小集合,这个集合里面数的最大公因数等于1 1<=n<=3e5 1< ...
- 简单的dialog,类似alert弹框
function alertPop(content){ $.dialog({ title:"提示", width:400, height:100, padding:'5px', c ...
- js获取浏览器类型进行判断
本文为webuploader.js中学习心得,感谢开源,从中加入了ie的edge判断 /** * @description 简单的浏览器检查结果. * * * `webkit` webkit版本号,如 ...
- jq+download+文件夹下载
最近公司在做工程项目,实现文件夹下载. 网上找了很久,发现网上的代码都有相似的问题,不过最终还是让我找到了一个符合的项目. 工程: 进行项目文件夹下载功能分析,弄清楚文件夹下载的原理,提供的数据支持. ...
- CentOS 5 上配置 Redmine 和 Git
现在我们用 Trac + Git 来管理所有的项目,早些时候是由 Trac + Subversion 管理的,和 Git 比较起来 Subversion 简直就是龟速.虽然我们前段时间换成了 Git ...
- concurrent.future
concurrent.future module provides a high-level interface for asynchronously executing callables. Bas ...
- NoSQL世界的几个重要理论
和所有事物一样,NoSQL的兴起也是由许多理论支撑作为前提的,正是由下面一些理论的支撑,NoSQL的方向才能如此明朗. 1.CAP理论 CAP理论无疑是导致技术趋势由关系数据库系统向NoSQL系统转变 ...
- python学习之高阶函数
filter函数:filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中 list = filter(调用函数名,可迭代对象)——调用函数名自动传参— ...