2017-04-27 14 views

cevap

1

Son olarak I My sınıf zaten React.Component.So nasıl uzanan çok basit bir cevap

npm itici-js, ES6-söz ve izomorfik getirme ve

var Pusher=require('pusher-js'); 
var fetch=require('isomorphic-fetch'); 
require('es6-promise').polyfill(); 
1

Bunun için bir Yüksek mertebeden Bileşeni olarak tepki zaman uyumsuz-script yükleyici kullanabilirsiniz: Sonra

npm install --save react-async-script-loader 

aktarın ve ihtiyaç duyduğu senin parça ilave: https://github.com/leozdgao/react-async-script-loader

Sadece NPM yoluyla kurun cdn javascripts komut dosyası ile, bileşeninize eklemek istediğiniz URL'leri verir.

import scriptLoader from 'react-async-script-loader'; 

// Your component code: 
class YourComponent extends React.Component { 
    render() { 
    return <p>{ 
     this.props.isScriptLoadSucceed ? 'Scripts loaded.' : 'Loading...' 
    }</p>; 
    } 
} 

export default scriptLoader([ 
    'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js', 
    'https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js' 
])(YourComponent); 

Bu sayede dosyalar yalnızca gerçekten ihtiyacınız olan yere yüklenir. Yüklendikten sonra tekrar eklenmezler (bileşeni güncellerseniz).

Dekoratör (ES7) sözdizimi, bir HOC uygulamasından daha fazlasını beğenirseniz, bu da README projelerinde belgelenmiştir.

+0

olarak içe yüklemek ile geldi scriptloader'ı aynı sınıfta mı genişletirim? Birden çok devingenliği desteklediğini düşünmüyorum. –

+0

HOC, her zamanki gibi bir sınıf devralma değildir, bu yüzden React.Component 'den uzanıyor olsanız bile bunu kullanabilirsiniz. Bu desen hakkında daha fazla bilgi için buraya bakın: http://stackoverflow.com/documentation/reactjs/9819/higher-order-components. "Export default scriptLoader" dosyasında uzantılar olmadığına dikkat edin, daha çok YourComponent sınıfını geçiren bir işlev çağrısıdır. –

+0

Eğer kısa bir kod snippet'i yazabilirseniz harika bir yardımcı olurdum.i –

İlgili konular