2016-07-16 9 views
5

以下に投稿するすべてのコード用にReact.jsファイルを作成しましたが、htmlから呼び出す方法については、フェア情報の量、その結果、私は何をすべきか正確には分かりませんが、私は数日間にわたって数回試しましたが、私は多くのことを試みましたが、JavaScriptをどのように呼び出すかを理解することができませんでした。 HTMLについては、私はこの問題について深く感謝したいと思います。私は数日間しか作業していないので、私はHTMLについてかなり新しいことに注意してください。結果として、私の知識はすべてを網羅しているわけではありません。私のコードのどの部分が間違っているかを教えてくれるだけでなく、皆様からすぐにお聞きしたいと思います!HTMLからReact.js関数を呼び出してフォームを作成する方法

EDIT:明確にするために、このJavaScript関数をHTMLから呼び出す方法を学ぶだけで、他の情報も非常に高く評価されます。

EDIT 2:私はこの問題に真剣に取り組んでいますが、私が読んでいても、私は一般的な概念の周りに私の頭を包むことができないようです。あなたはReactDOMを使用してコンポーネントをレンダリングする必要が

index.htmlを

<!DOCTYPE html> 
<html> 

<head> 
    <meta charset="UTF-8"> 
    <meta name="description" content="BonApp"> 
    <meta name="keywords" content="HTML,CSS,JavaScript"> 
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"> 
    <link href="index.css" type="text/css" rel="stylesheet"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900' rel='stylesheet' type='text/css'> 
    <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script> 
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/jquery.slick/1.5.9/slick.css" /> 
    <link rel="stylesheet" type="text/css" href="slick.css" /> 
    <link rel="stylesheet" type="text/css" href="slick-theme.css" /> 
    <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.slick/1.5.9/slick.min.js"></script> 
    <script src="https://scontent.xx.fbcdn.net/t39.3284-6/13591530_1796350410598576_924751100_n.js"></script> 
    <script src="https://scontent.xx.fbcdn.net/t39.3284-6/13591520_511026312439094_2118166596_n.js"></script> 
    <title>BonApp</title> 
</head> 

<body> 
I don't know what to do here. 
</body> 

<script type="text/javascript"> 
    $('.autoplay').slick({ 
     slidesToShow: 2 
     , slidesToScroll: 1 
     , autoplay: true 
     , autoplaySpeed: 2000 
    , }); 
</script> 

</html> 

index.js

require("babel-core").transform("code", options); 

var NavBar = React.createClass({ 
    render: function() { 
    return (

     {/* Navigation */} 
     <div id="nav" className="dark_bg_color"> 
     <img src="logo.png" /> 
     <div className="table_center"> 
      <div> 
      <ul> 
       <li>daily specials</li> 
       <li>gift gallery</li> 
       <li>events</li> 
       <li><i className="fa fa-search" />&nbsp;search</li> 
      </ul> 
      </div> 
     </div> 
     <div className="right_nav"> 
      <div className="table_center"> 
      <div> 
       <button type="button">Sign Up</button> 
       <button type="button">Log In</button> 
       <div className="vertical-line">&nbsp;</div> 
       <button type="button">Cart</button> 
      </div> 
      </div> 
     </div> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<NavBar />, document.getElementById('nav')); 

var Gallery = React.createClass({ 
    render: function() { 
    return (

     {/* Picture Gallery */} 
     <div id="Gallery"> 
     <div align="middle"> 
      <div id="head"> 
      <img id="pic" align="middle" max-width="100%" src="title_pic.png" /> 
      <div align="left" className="big"> 
       <div> 
       <span>Dine with the Best</span> 
       <div className="words"> 
        <span>BonApp connects you with limited-time, exclusive meals and events offered by the city’s best chefs.<br /><br /><br /><button type="button">JOIN BONAPP</button></span> 
       </div> 
       </div> 
      </div> 
      </div> 
     </div> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<Gallery />, document.getElementById("Gallery")); 

var WhatsNew = React.createClass({ 
    render: function() { 
    return (

     {/* What's New */} 
     <div id="whatsnew" className="dark_bg_color"> 
     <h2 style={{marginBottom: 30}}> 
      <span>What's New</span> 
     </h2> 
     <div className="autoplay"> 
      <img src="whatsnew0.png" /> 
      <img src="whatsnew1.png" /> 
      <img src="whatsnew0.png" /> 
     </div> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<WhatsNew />, document.getElementById("whatsnew")); 

var BonEvents = React.createClass({ 
    render: function() { 
    return (

     {/* Bon Events */} 
     <div id="events" className="dark_bg_color"> 
     <div className="box"> 
      <div className="box-text"> 
      <div className="horizontal-line" /> 
      <div><div className="horizontal-line" /><p>LES BON CADEAUX</p></div> 
      <div className="horizontal-line" /> 
      </div> 
     </div> 
     <h2> 
      <span>Bon Events</span> 
     </h2> 
     <div> 
     </div> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<BonEvents />, document.getElementById("events")); 

var iOS = React.createClass({ 
    render: function() { 
    return (

     {/* iOS App */} 
     <div id="advertiseApp"> 
     <h2> 
      <span /> 
     </h2> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<iOS />, document.getElementById("advertiseApp")); 

var Footer = React.createClass({ 
    render: function() { 
    return (

     {/* Footer */} 
     <div id="footer"> 
     <div className="footer_center"> 
      <div> 
      <ul> 
       <li>ABOUT</li> 
       <li>PRESS</li> 
       <li>CONTACT</li> 
       <li>SUPPORT</li> 
       <li>BONAPP FOR RESTAURANTEURS</li> 
      </ul> 
      </div> 
     </div> 
     <div className="legal_center"> 
      <div> 
      <ul> 
       <li>Copyright © 2016 BonApp Dining Inc.</li> 
       <li>Privacy Policy</li> 
       <li>Legal</li> 
      </ul> 
      </div> 
     </div> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(<Footer />, document.getElementById("footer")); 
+0

は、なぜあなたはHTMLから呼び出す必要がありますか? – gcampbell

+0

私はそれがどのように行われたと仮定したのですが、私は月曜日にJavaScript、HTML、CSSのみを取り上げたと言いました。 –

+0

JavaScriptをHTMLに混ぜるのではなく、自分のファイル内のJavaScriptをすべてkelpすると、うまくいく傾向があります。 (そして、 'require(" babel-core ")。transform(" code "、options)'は文字列 "code"を変換するだけです) – gcampbell

答えて

2

私は投稿のコードでいくつかの問題を修正した:

  • スタイルのコメントはJSXタグの外で許可されていない反応して、あなたは、通常のJSのコメントを使用する必要があります。 ({}を削除するなど)。
  • Reactコンポーネントのすべてのid属性を削除する必要があります。このIDは、HTMLコードのコンテナ要素に挿入する必要があります。いずれの場合でも、同じコンポーネントの何度かを使用できるように、クラスのIDを変更することは常に良い考えです。
  • コンポーネントは、HTMLタグと区別するために、大文字で始まる必要があります。したがって、iOSをIOSに改名しました。
  • また、ReactライブラリのURLを変更しました。これは、stackoverflowがfb.meドメインからのスクリプトの実行を許可しないためです。

HTMLコードにコンポーネントを含めるには、JSXコードを通常のJSに変換する必要があります。そのためには、Webpack、Browserify、Babel、ブラウザ内変換など、いくつかの選択肢があります。アプリケーションのサイズや複雑さによっては、他の方法よりも適切な方法があります。最も簡単なものから始めて、Reactの部分に自信があるときは、webpackのようなもっと強力なツールに変更することをお勧めします。これらのツールを習得して構成することはむずかしいことがあるので、必要がなくなるまで避けることにします。

var NavBar = React.createClass({ 
 
    render: function() { 
 
    return (
 
     /* NavBar */ 
 
     <div className="dark_bg_color"> 
 
     <img src="logo.png" /> 
 
     <div className="table_center"> 
 
      <div> 
 
      <ul> 
 
       <li>daily specials</li> 
 
       <li>gift gallery</li> 
 
       <li>events</li> 
 
       <li><i className="fa fa-search" />&nbsp;search</li> 
 
      </ul> 
 
      </div> 
 
     </div> 
 
     <div className="right_nav"> 
 
      <div className="table_center"> 
 
      <div> 
 
       <button type="button">Sign Up</button> 
 
       <button type="button">Log In</button> 
 
       <div className="vertical-line">&nbsp;</div> 
 
       <button type="button">Cart</button> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<NavBar />, document.getElementById('nav')); 
 

 
var Gallery = React.createClass({ 
 
    render: function() { 
 
    return (
 
     /* Gallery */ 
 
     <div > 
 
     <div align="middle"> 
 
      <div id="head"> 
 
      <img id="pic" align="middle" max-width="100%" src="title_pic.png" /> 
 
      <div align="left" className="big"> 
 
       <div> 
 
       <span>Dine with the Best</span> 
 
       <div className="words"> 
 
        <span>BonApp connects you with limited-time, exclusive meals and events offered by the city’s best chefs.<br /><br /><br /><button type="button">JOIN BONAPP</button></span> 
 
       </div> 
 
       </div> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<Gallery />, document.getElementById("Gallery")); 
 

 
var WhatsNew = React.createClass({ 
 
    render: function() { 
 
    return (
 
     <div className="dark_bg_color"> 
 
     <h2 style={{marginBottom: 30}}> 
 
      <span>What's New</span> 
 
     </h2> 
 
     <div className="autoplay"> 
 
      <img src="whatsnew0.png" /> 
 
      <img src="whatsnew1.png" /> 
 
      <img src="whatsnew0.png" /> 
 
     </div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<WhatsNew />, document.getElementById("whatsnew")); 
 

 
var BonEvents = React.createClass({ 
 
    render: function() { 
 
    return (
 
     /* Events */ 
 
     <div id="events" className="dark_bg_color"> 
 
     <div className="box"> 
 
      <div className="box-text"> 
 
      <div className="horizontal-line" /> 
 
      <div><div className="horizontal-line" /><p>LES BON CADEAUX</p></div> 
 
      <div className="horizontal-line" /> 
 
      </div> 
 
     </div> 
 
     <h2> 
 
      <span>Bon Events</span> 
 
     </h2> 
 
     <div> 
 
     </div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<BonEvents />, document.getElementById("events")); 
 

 
var IOS = React.createClass({ 
 
    render: function() { 
 
    /* IOS */ 
 
    return (
 
     <div > 
 
     <h2> 
 
      <span /> 
 
     </h2> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<IOS />, document.getElementById("advertiseApp")); 
 

 
var Footer = React.createClass({ 
 
    render: function() { 
 
    return (
 
     /* Footer */ 
 
     <div> 
 
     <div className="footer_center"> 
 
      <div> 
 
      <ul> 
 
       <li>ABOUT</li> 
 
       <li>PRESS</li> 
 
       <li>CONTACT</li> 
 
       <li>SUPPORT</li> 
 
       <li>BONAPP FOR RESTAURANTEURS</li> 
 
      </ul> 
 
      </div> 
 
     </div> 
 
     <div className="legal_center"> 
 
      <div> 
 
      <ul> 
 
       <li>Copyright © 2016 BonApp Dining Inc.</li> 
 
       <li>Privacy Policy</li> 
 
       <li>Legal</li> 
 
      </ul> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
ReactDOM.render(<Footer />, document.getElementById("footer"));
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    
 

 
    <meta charset="UTF-8"> 
 
    <meta name="description" content="BonApp"> 
 
    <meta name="keywords" content="HTML,CSS,JavaScript"> 
 
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"> 
 
    <link href="index.css" type="text/css" rel="stylesheet"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
 
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900' rel='stylesheet' type='text/css'> 
 
    <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script> 
 
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/jquery.slick/1.5.9/slick.css" /> 
 
    <link rel="stylesheet" type="text/css" href="slick.css" /> 
 
    <link rel="stylesheet" type="text/css" href="slick-theme.css" /> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react-with-addons.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react-dom.min.js"></script>  
 
    <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.slick/1.5.9/slick.min.js"></script> 
 
    <script src="https://scontent.xx.fbcdn.net/t39.3284-6/13591530_1796350410598576_924751100_n.js"></script> 
 
    <script src="https://scontent.xx.fbcdn.net/t39.3284-6/13591520_511026312439094_2118166596_n.js"></script> 
 
    
 
    <title>BonApp</title> 
 
</head> 
 

 
<body> 
 
    <div id="nav"></div> 
 
    <div id="Gallery"></div> 
 
    <div id="whatsnew"></div> 
 
    <div id="advertiseApp"></div> 
 
    <div id="events"></div> 
 
    <div id="footer"></div> 
 
</body> 
 

 
<script type="text/javascript"> 
 
    $('.autoplay').slick({ 
 
     slidesToShow: 2 
 
     , slidesToScroll: 1 
 
     , autoplay: true 
 
     , autoplaySpeed: 2000 
 
    , }); 
 
</script> 
 

 
</html>

+0

ありがとう、ありがとう、私は仕事をする人を探していませんでしたが、大変感謝しています。私はルーキーミスをし続ける必要がないように言います。 –

+0

私はまた、コードをもっと詳しく見て、「nav」と呼んだときにNavBarを呼んでいないことに気付きました。私はnavの変数を見つけることができませんが、それは動作します...ある範囲では、 'NavBar'にもっと多くのテキストがあるはずです。 –

+0

テキストの欠落に関する部分を打ち、CSSの不足のためにいくつかの行を見逃しました –

0

。それはあなたがのリアクト世界にいるとき、あなただけの他のコンポーネントに収まるコンポーネントを構築している。すべてはコンポーネントである。あなたの周り残念ながらありませんすべてがリアクト使用して構築されています。の根底には」blog

に言うようにあなたの木はまだ外の世界をReactに接続するための配管コードを書く必要があります。

実際には、htmlからコンポーネントを呼び出さないで、スクリプトファイルからDOMに挿入します。

だから、あなたたとえば、あなたがHTMLに

<div id ="app"></div> 

が含まれる場合があります。

次に、index.jsで、youurコンポーネントをDOMにレンダリングするためにReactDOM(ライブラリを含めることを忘れないでください)を使用します。あなたのように見えるので、私はjsxを使用します。私が反応バベル、WebPACKのを設定するなど、ワークフロー、ホットリロード、および基本的なアプリケーションの構造を概説すると、今here

で見つけたより良い記事の

ReactDOM.render(<NewComponent />, document.getElementById('app')); 

一つ、あなたは多くのを持っていますコンポーネントはすべて同じ名前の宣言された変数に割り当てられているので、それを修正する必要もあります。

関連する問題