2017-10-26 8 views
0

コード生成フレームワークでReact/JSXを使用できるかどうかは疑問でした。非JavaScriptコード生成にReact/JSXを使用する

JSXで以下のコードを実行する方法はありますか?

var className = "Person" 
return (
    //// public class {className} 
    //// { 
    //// 
    //// } 
); 

ここで、////はJSXパーサに信号を送る特殊文字または文字シーケンスですが、これはプレーンテキストであるべきですか?

また、Reactを既に使用している方がよいでしょうか?

+0

あなたが達成するために何をしようとしていますか? – meza

+0

私はすべてを文字列として扱い、反応して文字列を操作できると思います。きれいではないが、うまくいくはずだ。しかし、BuddyJoeのように、正確に何を達成しようとしているのですか – Francisc0

+0

さまざまなソースから来たJSONファイルをループし、C#、Java、SQL、Elixirなどのコードを出力するテンプレート型のアプローチを使用します。以前これを他の言語で書いていましたが、今はJavaScriptに移植しています.JSXがテンプレート化で役割を果たすことができるのだろうかと思います。私はこれとC#s Razorのようなもののインライン・アプローチが大好きです。 – BuddyJoe

答えて

1

ブラウザでこれを行う場合は、このようなことを行い、マウント時にレンダリングされた<code>要素のtextContentを取得できます。私はサーバー上でReactを使用していませんが、ReactDOMSever's renderToStringを使用して、あなたの文字列から開始タグと終了タグを取り除き、あなたのanytypeに保存できるテキスト文字列のコードを持つ簡単なスクリプトを作成すると思いますファイルを使用してノード。

var data = { 
    class_name : 'User', 
    method1Name: 'doSomething' 
} 


class MakeClass extends React.Component { 
    componentDidMount(){ 
    console.log(this.codeElem.textContent) 
    } 

    render() { 
    let {json} = this.props; 
    return (
     <code ref={c=>this.codeElem=c}>{` 

class ${json.class_name} { 
    constructor() { 
     // do something 
    } 

    ${json.method1Name}() { 
    // this method does something 
    } 
} 

     `}</code> 
    ) 
    } 
} 

ReactDOM.render(
    React.createElement(MakeClass, {json: data}), 
    document.getElementById('root') 
); 

あなたはここで完全なものを見ることができます: http://jsbin.com/rizaqifasi/edit?html,js,console,output

関連する問題