react

react的jsx语法和定义组件

安装运行

安装

    npx create-react-app 项目名称

进入目录

    cd 项目名称

启动项目

    npm start

JSX语法的注意事项

  1. 组件中只有一个根元素
  2. 可以用Fragment做包裹元素,它不会被渲染为一个真实节点
  3. 标签在js中直接写,不用做为字符串加"",js语法的部分要在{}中定义
  4. class属性用className替代, label标签的for属性用htmlFor替代
  5. jsx中不能用if语句,用三元运算来替代
  6. const str = "<em>111</em>"
//直接渲染,不解析标签   
<p>{str}</p>
// 解析标签
<p dangerouslySetInnerHTML={{__html: str}}></p>
  1. 获取标签上的自定义属性,用e.target.dataset.index获取
    e.target 获取dom
<div data-index="3">
  1. JSX会自动解析数组,渲染数组中的每个元素值
const list = ['a','b']
...
    list.map((item,index) => {
        return <li key={index}>{item}</li>
    })
//react核心模块用来解析JSX语法
import React, { Fragment} from 'react

...
// 定义函数组件
function 组件名(){
    return (
        <Fragment>
            <div className={ 6 > 3 ? 'red': 'blue'}>
            </div>
        </Fragment>
    )
}

定义类组件(有状态组件)

组件名要大写(首字母大写)

    import React, {Component} from 'react'
    
    class 组件名 extends Component{
        constructor(){
            super()
            this.state = {
                inputValue: '',
                list: []
            }
        }
        //自定义的方法
        handlerChange(){}
        handerClick(){}

        //render函数
        render(){
            return (
                <div></div>
            )
        }

    }

组件中的数据绑定和事件绑定

render (){
    return (
        <div>
            <input type="text" value={this.state.inputValue}>
        </div>
    )
}

改变数据

    this.setState({
        list: 新值
    })

事件绑定

onChange={this.handlerChange.bind(this)}   表单发生变化时执行   bind是改变this指向
onClick={this.getdata}    点击事件
onKeyUp={this.handlerKeyUp}   键盘事件  e.keyCode === 13 回车键触发
 {/* 既传事件对象,又传其它的值 */}
 <button onClick={(e)=>{this.handlerDel(e,index)}}>删除</button>
注意:{this.handlerDel(e,index)}加括号表示直接调用 所以外部再用箭头函数,封装成一个函数

 //用箭头函数来获取正确的this
    handlerKeyUp = (e)=>{
       if (e.keyCode === 13){
           let list = this.state.list;
            this.setState({
                list: [...list,this.state.inputValue],
                inputValue: ''
            })
       }
    }

 keyup=(e)=>{    
        if(e.keyCode===13){    回车键触发
            let list=this.state.list
            list.push(this.state.values)   
            this.setState({
                // list: [...list,this.state.inputValue],     展开运算赋
                 list:list,
                values:''
            })
            console.log(this.state.list);
        }
    }

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

推荐阅读更多精彩内容

  • npm i antdnpm i react-router-dom react简介 React 起源于 Facebo...
    青争小台阅读 435评论 0 0
  • 1. React简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScrip...
    王蕾_fd49阅读 408评论 0 0
  • React 起源于 Facebook 的内部项目,他从最早的UI引擎变成了一整套前后端通吃的 Web App 解决...
    三也视界阅读 1,595评论 0 4
  • 最近看了一本关于学习方法论的书,强调了记笔记和坚持的重要性。这几天也刚好在学习React,所以我打算每天坚持一篇R...
    gaoer1938阅读 1,666评论 0 5
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,551评论 0 11