2015-10-04 7 views
5

पर भारी वाक्य रचना मैं https://github.com/chenglou/react-motion उपयोग करना चाहता था लेकिन जब मैं पहले ही उदाहरण देखें:प्रतिक्रिया गति

import {Motion, spring} from 'react-motion'; 
// In your render... 
<Motion defaultStyle={{x: 0}} style={{x: spring(10)}}> 
    {value => <div>{value.x}</div>} 
</Motion> 

मैं ES6 वाक्य रचना और JSX वाक्य रचना के साथ अभिभूत हो गया। मैं babel REPL पर यह अनुवाद करने की कोशिश की लेकिन यह पता स्ट्रिप्स JSX वाक्य रचना:

"use strict"; 

React.createElement(
    Motion, 
    { defaultStyle: { x: 0 }, style: { x: spring(10) } }, 
    function (value) { 
    return React.createElement(
     "div", 
     null, 
     value.x 
    ); 
    } 
); 

क्या इस पूर्व-ES6 JSX वाक्य रचना में से अनुवाद करता है?

+0

* "प्री-ईएस 6 वाक्यविन्यास में इसका क्या अर्थ है?" * वास्तव में बैबेल आपको क्या दिखाता है। आप विशेष रूप से भ्रमित क्यों पाते हैं? एकमात्र चीज जो पहले उदाहरण में es6 विशिष्ट है मॉड्यूल आयात और तीर फ़ंक्शन है। कुछ और जेएसएक्स या ऑब्जेक्ट अक्षर है। –

+0

@ फ़ेलिक्सक्लिंग, क्षमा करें, मेरा मतलब था "यह प्री-ईएस 6 जेएसएक्स सिंटैक्स में क्या अनुवाद करता है?" – Michelle

+0

बस फ़ंक्शन अभिव्यक्ति के साथ तीर फ़ंक्शन को प्रतिस्थापित करें। 'फ़ंक्शन (मान) {वापसी

{value.x}
; } '। नतीजा आपका जवाब है। –

उत्तर

6
import {Motion, spring} from 'react-motion'; 
// In your render... 
<Motion defaultStyle={{x: 0}} style={{x: spring(10)}}> 
    {value => <div>{value.x}</div>} 
</Motion> 

ES6 सुविधाओं लेकिन JSX का उपयोग किए बिना

var ReactMotion = require("react-motion"); 
var Motion = ReactMotion.Motion; 
var spring = ReactMotion.spring; 
// In your render... 
<Motion defaultStyle={{x: 0}} style={{x: spring(10)}}> 
    {function (value) { return <div>{value.x}</div>; }} 
</Motion> 

के रूप में समतुल्य रूप में लिखा जा सकता है।

वे केवल दो चीजें हैं जो बहुत अलग (उचित डॉक्स के लिंक के साथ) कर रहे हैं:

  • The import syntax है, जो भी एक रूप है जो जैसा दिखता है का उपयोग करता है (और की तरह काम करता है) destructuring
  • Arrow functions जो आप संक्षेप में करने की अनुमति परिभाषित कार्यों

भी वाक्य रचना <Motion defaultStyle={{x: 0}} style={{x: spring(10)}}> की तरह अक्सर भ्रामक है, लेकिन याद रखें कि attr={} आप एक JS एक्सप्रेशन पारित करने के लिए अनुमति देता है, और अभिव्यक्ति बस एक वस्तु शाब्दिक है। यह कार्यात्मक रूप से समतुल्य है:

var defaultStyle = {x: 0}; 
var style = {x: spring(10)}; 
<Motion defaultStyle={defaultStyle} style={style}> 
संबंधित मुद्दे