React组件化

reactjs的最大的特性就是组件化,组件化的目的就是为了能够进行复用,减少代码的冗余。(ES6语法请自行找资料学习)

需求:

1、用户能够在记事本中添加新事件
     2、用户能够对事件进行删除和编辑
     3、对正在进行编辑的事件,可以进行撤销

最终效果图:


记事本效果
一、组件拆分

1、按钮有自己的方法(事件)如果项目中有大量的按钮,则可以将按钮单独的做成一个组件,该案例中按钮就只有一个功能,故按钮不做拆分。
   2、列表中的项目分为可编辑和不可编辑的项目,可以将列表项拆分成两个组件,带输入框的和不带输入框进行展示的。

二、实现js代码逻辑

1、代码和页面进行分离,分别创建app.js和main.css文件
文件说明:app.js用来承载react的代码逻辑。main.css是我们自定义的样式。
   2、页面的整体结构

<div class="container">
  <div class="row">
    <h3 class="text-center">React记事本</h3>
    <div class="col-md-12">
        <button class="btn btn-success glyphicon glyphicon-plus menu-add">
            添加心事
        </button>
        <ul class="list-group">
            <li class="list-group-item">
                济南的风景真的挺不错的。。。。
                <a href="#" class="item-right glyphicon glyphicon-remove"></a>
                <a href="#" class="item-right glyphicon glyphicon-edit"></a>
            </li>
            <li class="list-group-item">
                北京今天的车真的太堵了。。。。
                <a href="#" class="item-right glyphicon glyphicon-remove"></a>
                <a href="#" class="item-right glyphicon glyphicon-edit"></a>
            </li>
            <li class="list-group-item">
                <input type="text">
                <i class="glyphicon glyphicon-share"></i>
                <i class="glyphicon glyphicon-remove"></i>
            </li>
        </ul>
    </div>
</div>

</div>
main.css 文件代码

@charset "utf-8";
a{
    text-decoration: none;
}
.menu-add{
    margin: 5px 0 10px;
}
.item-right{
      float: right;
      margin: 0 5px ;
}
.list-group-item  input[type="text"]{
    outline: none;
    border:0;
    border-bottom: 1px solid #000000;
}

本人使用的是webstrom编辑器,webstrom编辑器能够识别react的JSX语法,需要进行设置,配置如下:文件(files) →设置(setting) → 语言和框架(language) →javascript → javascript language version 选择React JSX

webstome JSX配置

app.js文件代码:

 /**
 * Created by Lenovo on 2017/4/6.
 */
//展示列表组件
const Items = React.createClass({
render(){
    return <li className="list-group-item">
        济南的风景真的挺不错的。。。。
        <a href="#" className="item-right glyphicon glyphicon-remove"></a>
        <a href="#" className="item-right glyphicon glyphicon-edit"></a>
    </li>;
}
});
//编辑类表组件
const ItemEditor = React.createClass({
  render(){
      return <li className="list-group-item">
          <input type="text"/>
          <i className="glyphicon glyphicon-remove"></i>
          <i className="glyphicon glyphicon-share"></i>
     </li>;
  }
});

//使用react进行渲染
ReactDOM.render(
  <div>
    <button className="btn btn-success glyphicon glyphicon-plus menu-add">
        添加心事
    </button>
    <Items/>
    <ItemEditor/>
  </div>,
  document.getElementById('content')
);

代码说明:
1、React中使用cearteClass方法创建组件。每一个组件对应的是一个类(类似于强类型语言java或c#中的类)组件的名字采用首字母大写的方式(必须否则报错)
2、render 方法能够对组件中的html代码进行渲染。在JSX中,html中使用的类样式都要使用className进行指定!
3、调用ReactDOM的render方法时,html的代码段必须在外围有一个容器,这个和js中的对象一致。例如:a,b,c 这种并列的形式ReactDOM在渲染的时将报错。你必须这样d(a,b,c)(a,b,c,d为html标签,希望你自行测试体会下!)
4、render方法的第二个参数指定要渲染到的容器。
下一节,将探讨React数据的绑定

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容