React学习——ListView组件
(草稿)
先把代码放上来,再补充说明
- <!DOCTYPE html>
- <html>
- <head>
- <title>React ListView</title>
- <!--
- 做一个列表控件,列表元素的模板可以设置,模仿ItemTemplate
- -->
- <script src="../build/react-with-addons.js" type="text/javascript"></script>
- <script src="../build/JSXTransformer.js" type="text/javascript"></script>
- <style type="text/css">
- .selected{
- color: red;
- }
- </style>
- </head>
- <body>
- <script type="text/jsx">
- var TextItem = React.createClass({
- render:function(){
- var item = this.props.item;
- return <p>this is {item}</p>
- }
- });
- var Template = React.createClass({
- render:function(){
- return React.createElement(this.props.type,this.props);
- }
- });
- var ListViewItem = React.createClass({
- render:function(){
- var item = this.props.item;
- var cls = this.props.isSelected?'selected':'';
- if(this.props.template){ /*有没有模板内容不同*/
- return <li className={cls} onClick={this.props.onClick}><Template type={this.props.template} item={item}></Template></li>;
- }else{
- return <li className={cls} onClick={this.props.onClick}>{item}</li>;
- }
- }
- });
- var ListView = React.createClass({
- getInitialState: function() {
- return {selectedItem: ''};
- },
- onSelect:function(item){
- this.setState({selectedItem:item});
- console.log('selected item:' + item);
- },
- render: function() {
- var itemTemplate = this.props.itemTemplate?this.props.itemTemplate:'';
- var selectedItem = this.state.selectedItem;
- return (
- <ol>
- {
- this.props.items.map(function (item,i) {
- var isSelected = (item ==selectedItem);
- return <ListViewItem key={i} item={item} template={itemTemplate} isSelected={isSelected} onClick={this.onSelect.bind(this,item)}></ListViewItem>
- },this)
- }
- </ol>
- );
- }
- });
- var items=['item1','item2','item3'];
- React.render(
- <ListView items={items} itemTemplate={TextItem}>
- </ListView>,
- document.body
- );
- </script>
- </body>
- </html>
第一步理解这个例子
React学习——ListView组件的更多相关文章
- React学习笔记 - 组件&Props
React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...
- React学习——ListView(Reflux)
接前一篇,把前面的ListView改成Reflux的形式 var BookActions=Reflux.createActions([ 'fetchList' ]); var BookStore = ...
- React 学习二 组件
React的一个最大的特点就是组件化的开发模式.今天就来试一下: <!DOCTYPE html> <html> <head> <meta charset=&q ...
- React学习——子组件给父组件传值
//子组件 var Child = React.createClass({ render: function(){ return ( <div> 请输入邮箱:<input onCha ...
- AntDesign(React)学习-15 组件定义、connect、interface
虽然常用的编码用一种即可,但是看别人文档或者示例时,有的写法不熟悉的话看着很不习惯,整理几种实现同一功能的不同写法 1.Dva Connect与@Connect import React, { Pro ...
- AntDesign(React)学习-1 创建环境
目录: AntDesign(React)学习-15 组件定义.connect.interface AntDesign(React)学习-14 使用UMI提供的antd模板 AntDesign(Reac ...
- 【React Native开发】React Native控件之ListView组件解说以及最齐全实例(19)
),React Native技术交流4群(458982758).请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...
- React Native常用组件之ListView组件
学习iOS开发的同学应该都知道UITableView,几乎每个APP中都有它的存在,而且衍生出各种形态:那么同样,ListView就是在React Native中的tableView,而且更加简单和灵 ...
- React Native的组件ListView
React Native的组件ListView类似于iOS中的UITableView和UICollectionView,也就是说React Native的组件ListView既可以实现UITableV ...
随机推荐
- OpenGL利用模板测试实现不规则裁剪
本文是原创文章,如需转载,请注明文章出处 在游戏开发中,经常会有这样的需求:给定一张64x64的卡牌素材,要求只显示以图片中心为圆点.直径为64的圆形区域,这就要用到模板测试来进行不规则裁剪. 实现不 ...
- JavaScript中如何获取某年某月有多少天的问题
function getDaysInOneMonth(year, month){ month = parseInt(month,10); var d= new Date(year,month,0); ...
- php 使用curl模拟登录discuz以及模拟发帖
<?php$discuz_url = 'http://127.0.0.1/discuz/';//论坛地址$login_url = $discuz_url .'logging.php?action ...
- java replace和replaceAll
replace和replaceAll是JAVA中常用的替换字符的方法 public String replace(char oldChar, char newChar) 在字符串中用n ...
- uva 10271 (dp)
题意:有n个数据,给定k,要从中选出k+8个三元组(x,y,z,其中x<=y<=z),每选一次的代价为(x-y)^2,求最小代价和. [解题方法] 将筷子按长度从大到小排序 排序原因: 由 ...
- a链接中套a链接
<a href="baidu.com"> <div> <div class="title">百度</div> & ...
- String的方法
String str = "djsfkskfjs" . str.indexof():括号里面写你查找的字符,从strd的第一个开始找,找到第一个相同的字符,得到该字符的数组下标. ...
- MYSQL获取自增ID的四种方法
MYSQL获取自增ID的四种方法 1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与tabl ...
- 在 Linux 上配置一个 syslog 服务器
syslog服务器可以用作一个网络中的日志监控中心,所有能够通过网络来发送日志的设施(包含了Linux或Windows服务器,路由器,交换机以及其他主机)都可以把日志发送给它. 通过设置一个syslo ...
- 【流程管理】【PCB】PCB设计流程
添加封装 封装库用官方库,如没有添加补丁库,用原库或其他库中元件复制修改 调用封装时可先放置到PCB里进行测量 3D模型添加网站 封装库分类按厂商分类,常用器件按器件类型分类, 命名使用规范 导入PC ...