खोज…


परिचय

इस विषय को React.js एकीकृत कवर रेल उपयोग करने के साथ Hyperloop मणि

यहां कवर नहीं किए गए अन्य दृष्टिकोण प्रतिक्रिया-रेल या प्रतिक्रिया_ऑन_रिल्स रत्नों का उपयोग कर रहे हैं।

टिप्पणियों

घटक कक्षाएं केवल समकक्ष जावास्क्रिप्ट घटक कक्षाएं उत्पन्न करती हैं।

आप अपने रूबी घटक वर्गों से सीधे जावास्क्रिप्ट घटकों और पुस्तकालयों तक भी पहुँच सकते हैं।

हाइपरलूप व्यू सर्वर साइड को "प्रीरेन्डर" करेगा ताकि आपका प्रारंभिक दृश्य ईआरबी या एचएएमएल टेम्प्लेट की तरह लोड हो जाए। एक बार क्लाइंट रिएक्शन पर लोड होने के बाद, उपयोगकर्ता द्वारा प्राप्त किए गए इनपुट, HTTP रिक्वेस्ट या इनकमिंग वेब सॉकेट डेटा के कारण राज्य में होने वाले परिवर्तन को DOM अपडेट कर देगा।

कंपोनेंट्स के अलावा, हाइपरलूप के पास साझा राज्य का प्रबंधन करने के लिए स्टोर हैं, आइसोमॉर्फिक बिजनेस लॉजिक को इनकैप्सुलेट करने के लिए ऑपरेशन, और मॉडल जो मानक एआर सिंटैक्स का उपयोग करके क्लाइंट पर आपके ActiveRecord मॉडल को सीधे एक्सेस देते हैं।

अधिक जानकारी यहाँ: http://ruby-hyperloop.io/

अपने रेल एप्लिकेशन के लिए एक सरल प्रतिक्रिया घटक (रूबी में लिखा गया) जोड़ना

  1. हाइपरलूप मणि को अपनी रेल (4.0 - 5.1) मणिफाइल में जोड़ें
  2. bundle install
  3. हाइपरलूप मेनिफ़ेस्ट को application.js फ़ाइल में जोड़ें:
    // app/assets/javascripts/application.js
    ...
    //= hyperloop-loader
    
  4. अपने प्रतिक्रिया घटक बनाएं, और उन्हें hyperloop/components निर्देशिका में रखें
    # app/hyperloop/components/hello_world.rb
    class HelloWorld < Hyperloop::Component
      after_mount do
        every(1.second) { mutate.current_time(Time.now) }
      end
      render do
        "Hello World!  The time is now: #{state.current_time}"
      end
    end
    
  5. घटक केवल विचारों की तरह काम करते हैं। वे एक नियंत्रक में render_component विधि का उपयोग करके "माउंटेड" हैं:
    # somewhere in a controller:
      ...
      def hello_world
        render_component # renders HelloWorld based on method name
      end
    

घटक मापदंडों की घोषणा (सहारा)

class Hello < Hyperloop::Component
  # params (= react props) are declared using the param macro
  param :guest
  render do
    "Hello there #{params.guest}"
  end
end

# to "mount" Hello with guest = "Matz" say 
  Hello(guest: 'Matz')

# params can be given a default value:
  param guest: 'friend' # or
  param :guest, default: 'friend'

एचटीएमएल टैग

# HTML tags are built in and are UPCASE
class HTMLExample < Hyperloop::Component
  render do
    DIV do
      SPAN { "Hello There" }
      SPAN { "Welcome to the Machine!" }
    end
  end
end

इवेंट हैंडलर

# Event handlers are attached using the 'on' method
class ClickMe < Hyperloop::Component
  render do
    DIV do
      SPAN { "Hello There" }
      A { "Click Me" }.on(:click) { alert('you did it!' }
    end
  end
end

राज्य अमेरिका

# States are read using the 'state' method, and updated using 'mutate'
# when states change they cause re-render of all dependent dom elements

class StateExample < Hyperloop::Component
  state count: 0  # by default states are initialized to nil
  render do
    DIV do
      SPAN { "Hello There" }
      A { "Click Me" }.on(:click) { mutate.count(state.count + 1) }
      DIV do 
        "You have clicked me #{state.count} #{'time'.pluralize(state.count)}"
      end unless state.count == 0
    end
  end
end

ध्यान दें कि राज्यों को हाइपरलूप :: स्टोर्स के घटकों के बीच साझा किया जा सकता है

कॉलबैक

# all react callbacks are supported using active-record-like syntax

class SomeCallBacks < Hyperloop::Component
  before_mount do
    # initialize stuff - replaces normal class initialize method
  end
  after_mount do
    # any access to actual generated dom node, or window behaviors goes here
  end
  before_unmount do
    # any cleanups (i.e. cancel intervals etc)
  end
  
  # you can also specify a method the usual way:
  before_mount :do_some_more_initialization
end


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow