zoukankan      html  css  js  c++  java
  • react目录结构、demo实例详解、属性数据绑定方式

    1、目录结构

    2、demo实例详解

      a)创建Home.js  

    import React, { Component } from 'react';
    //创建一个组件必须要集成Component组件,且组件名称要和文件名称一直
    class Home extends Component{
        /*构造函数用于数据的定义*/
        constructor(props){
            super(props);/*用于父子组件传值 ,固定写法*/
            this.state={
                name:"张三",
                age:'30'
            }
        }
        // 写jsx语法,同时绑定数据 ;render(){模板,主要是jsx语法}
        render() {
            return(
                <div> 你好 Home组件
                    <p>name:{this.state.name}</p>  //{this.state.name}绑定数据
                    <p>age:{this.state.age}</p>
                </div>
            )
        }
    }
    //将组件暴露,供别的组件使用
    export default Home;

      b)在App.js入口组件引入Home组件

    /**
     * 1、引入React
     * 2、创建一个类,集成Component
     * 3、使用render()函数的return()方法包含jsx语句
     *      jsx语句:js与html混合语言编程
     */
    
    import React, { Component } from 'react';
    import logo from './assets/images/logo.svg';
    import './assets/css/App.css';
    
    //引入组建
    import  Home from './components/Home';
    
    /**
     * App为一个入口组件
     */
    class App extends Component {
      //render() 模板    采用jsx语法
      render() {
        return (
          <div className="App">
            你好react
            挂在Home组件
            <Home/>
            <h2>react组件里面的所有节点要被根节点包含</h2>
          </div>
        );
      }
    }
    
    export default App;

     3、属性数据绑定方式

      a)知识点

    1、所有的模板要被一个根节点包含起来
    2、模板元素不要加引号
    3、{}绑定数据       
    4、绑定属性注意:         
          class 要变成 className   
          for 要变成  htmlFor
          style属性和以前的写法有些不一样
               <div style={{'color':'blue'}}>{this.state.title}</div>  //以前写法
                    <div style={{'color':this.state.color}}>{this.state.title}</div>  //react写法
    5、循环数据要加key
        方式一:定义变量 
             let listResult = this.state.list.map(function (value,key) {
                return <li key={key}>{value}</li>
            })
            绑定方式:{listResult}
        方拾二:直接绑定
            {
                            this.state.list2.map(function (value,key) {
                                return <li>{value.title}</li>
                            })
                    }
            
    6、组件的构造函数中一定要注意 super
      子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,
      而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象
      constructor(props){
            super(props);  /*用于父子组件传值  固定写法*/
            this.state={
                userinfo:'张三'
            }
        }
    
    7、组件名称首字母大写、组件类名称首字母大写

      b)操作案例

    import React, { Component } from 'react';
    import '../assets/css/Home.css';
    import logo from  '../assets/images/logo.svg'  //引入本地图片
    //创建一个组件必须要集成Component组件,且组件名称要和文件名称一致
    class Home extends Component{
        /*构造函数用于数据的定义*/
        constructor(props){
            super(props);/*用于父子组件传值 ,固定写法*/
            this.state={
                name:"张三",
                age:'30',
                msg:"我是一个Home组件",
                title:"我是标题",
                color:'red',
                style:{
                    color: 'red',
                    fontSize:'40px'
                },
                list:['111','222','333'],
                list2:[
                    {title: "新闻111"},
                    {title: "新闻222"},
                    {title: "新闻333"}
                ]
            }
        }
        // 写jsx语法,同时绑定数据 ;render(){模板,主要是jsx语法}
        render() {
    
            let listResult = this.state.list.map(function (value,key) {
                return <li key={key}>{value}</li>
            })
            return(
                <div> 你好 Home组件
                    <p>name:{this.state.name}</p>
                    <p>age:{this.state.age}</p>
                    <div title="122"> 我的div</div>
                    <div title={this.state.title}>绑定属性</div>
    
                    <div className='red'>这个是一个红色的div,要使用className,而不是class</div>
                    <div className={this.state.color}>这个是一个红色的div,className绑定数据,使用对象方式获取</div>
                    <br/>
                    <p>label要使用htmlFor</p>
                    <label htmlFor="name">姓名</label>
                    <input id = "name"/>
    
                    <br/>
                    <div style={{'color':'red'}}>style原始的样式</div>
                    <div style={this.state.style}>react style样式绑定数据</div>
                    <p>引入本地图片</p>
                    <img src={logo}/>
                    <img src={require('../assets/images/logo.svg')}/>
    
                    <p>引入远程图片</p>
                    <img src="https://img.shields.io/badge/cnpm-0.0.1-red.svg?style=flat-square"/>
    
                    <p>遍历list方式,通过map函数遍历</p>
                    <ul>
                        {listResult}
                    </ul>
    
                    <p>遍历list方式,通过map函数遍历</p>
                    <ur>
                        {
                            this.state.list2.map(function (value,key) {
                                return <li>{value.title}</li>
                            })
                        }
                    </ur>
                </div>
            )
        }
    }
    //将组件暴露,供别的组件使用
    export default Home;
  • 相关阅读:
    Sample XPS Documents Download
    触发器中的inserted表和deleted表
    Using freewheel.labs.autodesk.com to auto generate preview images of DWF files on your web site
    解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
    读写xps
    XPS文件,在Windows XP下的打开查看阅读和打印方法。
    Learning to Reference Inserted and Deleted Tables
    Get value from updated, inserted and deleted
    Reinstall Microsoft Helper Viewer
    如何查找文件的IFilter
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10416912.html
Copyright © 2011-2022 走看看