首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将html转换成JSX,ReactJS组件?

如何将html转换成JSX,ReactJS组件?
EN

Stack Overflow用户
提问于 2016-08-17 11:20:39
回答 1查看 4.9K关注 0票数 2

我正在使用Webpack,Redux和ReactJS。

目前,我已经在我的index.html中设置了以下内容,但我希望将其转换为JSX,ReactJS组件。这样做的正确方法是什么?

在我的index.html <head/>中,有一个名为classie.js的类助手函数。

代码语言:javascript
运行
AI代码解释
复制
<script src="classie.js"></script>
<script>
  function init() {
      window.addEventListener('scroll', function(e){
          var distanceY = window.pageYOffset || document.documentElement.scrollTop,
              shrinkOn = 300,
              header = document.querySelector("header");
          if (distanceY > shrinkOn) {
              classie.add(header,"smaller");
          } else {
              if (classie.has(header,"smaller")) {
                  classie.remove(header,"smaller");
              }
          }
      });
  }
  window.onload = init();
</script>

在我的index.html <body/>

代码语言:javascript
运行
AI代码解释
复制
<div id="wrapper">
  <header>
      <div class="container clearfix">
          <h1 id="logo">
              Practice Navigation Bar
          </h1>
          <nav>
            <a href="">Button 1</a>
            <a href="">Button 2</a>
          </nav>
      </div>
  </header>
</div>

因此,将其转换为如下ReactJS组件格式:

代码语言:javascript
运行
AI代码解释
复制
//App.js 

import React, { Component } from 'react'
import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
import actions from '../redux/actions'

class NavBar extends Component {

  render() {
    return (
        <div>
          {/*e.g. What should go in here?*/}
        </div>
    );
  }
}

function mapStateToProps(state) {
  return state
}

function mapDispatchToProps(dispatch) {
  return {
    actions: bindActionCreators(actions, dispatch)
  }
}

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(NavBar) 

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2016-08-17 12:20:49

这里有一条路。我要在这里做几个假设。第一,你将使用React路由器。第二,头是站点范围的,其余的内容取决于路由/路径。

还请注意,我将把您提供的大部分html放到一个头组件中。但是,根据头部的复杂性,您可以将其进一步分解为nav组件和/或navlink组件。

Index.html

代码语言:javascript
运行
AI代码解释
复制
<body>
    <div id="app"></div>
</body>

App.js

代码语言:javascript
运行
AI代码解释
复制
import React from 'react';
import Header from '../Header';

function App({ children }) {
  return (
    <div>
      <Header />
      {children}
    </div>
  );
}

export default App;

Header.js

代码语言:javascript
运行
AI代码解释
复制
import React, { Component } from 'react';
import { has, add, remove } from '../classie';

class Header extends Component {
  constructor(props) {
    super(props);

    this.state = {
      display: false,
    };

    this.doSomething = this.doSomething.bind(this);
  }

  componentDidMount() {
    this.getData();
    window.addEventListener('scroll', function (e) {
      var distanceY = window.pageYOffset || document.documentElement.scrollTop,
        shrinkOn = 300,
        header = document.querySelector("header");
      if (distanceY > shrinkOn) {
        add(header, "smaller");
      } else {
        if (has(header, "smaller")) {
          remove(header, "smaller");
        }
      }
    });
  }

  getData() {
    // GET request here
  }

  doSomething() {
    this.setState({
      display: true,
    });
  }

  render() {
    return (
      <header>
        <div class="container clearfix">
          <h1 id="logo" onClick={this.doSomething}>
            Practice Navigation Bar
          </h1>
          <nav>
            <a href="">Button 1</a>
            <a href="">Button 2</a>
          </nav>
        </div>
      </header>
    );
  }
}

export default Header;

Index.js

代码语言:javascript
运行
AI代码解释
复制
import React from 'react';
import { render } from 'react-dom';
import { Router, Route, browserHistory } from 'react-router';

import App from './components/App';
import Home from './components/Home';
import InnerPage from './components/InnerPage';

module.exports = render((
  <Router history={browserHistory}>
    <Route component={App}>
      <Route path="/" component={Home} />
      <Route path="innerpage" component={InnerPage} />
    </Route>
  </Router>
), document.getElementById('app'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39004654

复制
相关文章
Livy:基于Apache Spark的REST服务
Apache Spark提供的两种基于命令行的处理交互方式虽然足够灵活,但在企业应用中面临诸如部署、安全等问题。为此本文引入Livy这样一个基于Apache Spark的REST服务,它不仅以REST的方式代替了Spark传统的处理交互方式,同时也提供企业应用中不可忽视的多用户,安全,以及容错的支持。 背景 Apache Spark作为当前最为流行的开源大数据计算框架,广泛应用于数据处理和分析应用,它提供了两种方式来处理数据:一是交互式处理,比如用户使用spark-shell或是pyspark脚本启动Sp
CSDN技术头条
2018/02/13
4K0
Livy:基于Apache Spark的REST服务
基于spring-boot的rest微服务框架
周末在家研究spring-boot,参考github上的一些开源项目,整了一个rest微服务框架,取之于民,用之于民,在github上开源了,地址如下:
菩提树下的杨过
2018/09/20
8040
Ajax的异步请求探究
在开发中经常使用ajax去请求接口,而ajax不是一项新的技术,基于原生的XmlHttpRequest对象和html css js共同完成 在了解ajax之前先搞清楚什么是http, 想要了解更多可访问mozllia(霸王龙)的 https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/send# Http
用户9347382
2022/01/10
8650
Rest API请求管理最佳实践:RestClient-cpp库的应用案例
在当今互联网时代,REST(Representational State Transfer)API已经成为了现代应用程序开发的重要组成部分。随着各种网络服务和应用程序的不断涌现,有效地管理和调用REST API变得至关重要。为了解决这一需求,开发人员们倾向于寻找可靠且易于使用的库来简化REST API请求的处理。
小白学大数据
2024/03/29
2930
AsyncContext异步请求的用法
在Servlet 3.0中,在ServletRequest上提供了startAsync()方法
全菜工程师小辉
2019/09/16
5.4K0
AsyncContext异步请求的用法
HarmonyOS 开发实践 —— 基于@ohos/axios的网络请求能力
Axios 是一个基于promise的网络请求库,可以运行node.js和浏览器中。基于Axios原库v1.3.4GitHub版本进行适配,使其可以运行在OpenHarmony并沿用其现有用法和特性。
小帅聊鸿蒙
2024/12/03
3110
HarmonyOS 开发实践 —— 基于@ohos/axios的网络请求能力
HarmonyOS 开发实践 —— 基于rcp的网络请求能力
rcp模块提供HTTP数据请求功能,请求性能如接口的易用性、性能、功耗方面,对比Network Kit HTTP网络API,rcp采用面向对象和场景的设计,API使用更简单、更灵活,满足不同场景的使用需求,具备更好的扩展性和更优的性能。支持如场景化网络API、网络代理、自定义DNS解析、自定义证书校验、服务器身份校验等特性。
小帅聊鸿蒙
2024/11/22
2220
HarmonyOS 开发实践 —— 基于rcp的网络请求能力
Angular 实践:如何优雅地发起和处理请求
Tips: 本文实现重度依赖 ObservableInput,灵感来自同事 @Mengqi Zhang 实现的 asyncData 指令,但之前没有 ObservableInput 的装饰器,处理响应 Input 变更相对麻烦一些,所以这里使用 ObservableInput 重新实现。
灵雀云
2020/02/26
8680
Angular 实践:如何优雅地发起和处理请求
Netflix 微服务异步迁移:从同步的“请求响应”模式转换为异步事件
假设我们正在运行一个基于 Web 的服务。请求处理变慢最终将会导致服务不可用。实际上,并不是所有的请求都需要立即处理。有些请求只要确认已收到即可。你有没有问过自己这样的问题:“我是否能够从异步请求处理中获益?如果确实如此的话,我该如何在一个实时的、大规模的关键任务系统中做出这种转变?”
深度学习与Python
2022/11/28
7870
Netflix 微服务异步迁移:从同步的“请求响应”模式转换为异步事件
Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs
Hadoop生态圈的Spark(https://www.cloudera.com/products/open-source/apache-hadoop/apache-spark.html),一夜之间成为默认的数据处理引擎,并被作为高级分析的标准。但是它依旧有许多东西需要完善,特别是在大规模/多租户,开发与投产,以及可扩展性方面。
Fayson
2018/03/29
2.4K0
基于zookeeper的微服务实践
微服务的话题也火了好几年了,各类微服务架构的文章也是非常的多,这里也阐述下个人对微服务系统的见解。
DifficultWork
2019/06/03
1.2K0
Spring Boot快速开发REST服务实践
REST代表Representational State Transfer. 是一种架构风格,设计风格而不是标准,可用于设计Web服务,可以从各种客户端使用.
用户5224393
2019/08/30
8250
Spring Boot快速开发REST服务实践
基于 Docker 的微服务架构实践
基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展。本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结。希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考。
烂猪皮
2018/08/03
2.6K0
基于 Docker 的微服务架构实践
Java调用外部REST请求的几种方式
1、RestOperations 提供了各种封装方法,非常方便直接将返回转成实体类。
伍六七AI编程
2022/03/23
8130
python-异步IO编程-异步HTTP请求的实现
在传统的同步IO编程中,当我们发起一个HTTP请求时,我们需要等待服务器返回响应,这样就会阻塞当前线程的执行。如果需要发起多个HTTP请求,就需要创建多个线程或进程来处理这些请求,这样会造成资源浪费和性能下降。为了解决这个问题,Python提供了异步IO编程模型,可以实现异步HTTP请求,从而提高程序的性能和并发能力。
玖叁叁
2023/04/21
7330
Spring 3.0支持基于rest的Web服务学习总结
尽管RESTful功能被添加到Spring MVC框架非常早期通过注释和其他API功能,支持基于rest的Web服务是Spring MVC有点晚。几个jax - rs(RESTful Web服务的Java API)实现,比如Restlet RESTEasy和球衣支持rest风格的Web服务,但Spring社区没有添加到Spring 3.0支持rest风格的Web服务功能。在这篇文章中,我讨论了Spring 3.0支持开发RESTful Web服务,检查类和注释。 快速复习,RESTful Web服务的Web
用户1289394
2018/02/27
1.3K0
小白需懂的异步请求的处理
在我们传统的服务中,当一个HTTP请求过来时,tomcat或者是其他的中间件都会有一个主线程来处理请求,所有的业务逻辑都会在这个线程里面处理完,最后会给出一个响应。由于我们的tomcat所管理的线程数是有限的,当线程到达一定程度后,再有请求过来将会无法去处理了。
用户7386338
2020/05/29
2.1K0
servlet异步请求
其中第二步处理业务逻辑时候很可以碰到比较耗时的任务,此时servlet主线程会阻塞等待完成业务处理,对于并发比较大的请求可能会产生性能瓶颈,则servlet3.0之后再此处做了调整,引入了异步的概念。
全栈程序员站长
2022/09/18
9130
servlet异步请求
ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
全部的现代浏览器均支持XMLHttpRrquest对象(IE5和IE6使用ActiveObject)async
全栈程序员站长
2022/08/29
1.4K0
Spring 异步请求
With the above in mind, the following is the sequence of events for async request processing with a Callable:
数媒派
2022/12/01
8110

相似问题

是否有可能将类似Lisp的宏构建为命令式语言?

34

是否有可能从eclipse构建过程中获得确切的maven命令?

14

是否有可能对无序元素进行响应式设计?

10

是否有可能脱离基于条件执行的bash命令?

12

是否有可能成功地包装退出方法?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文