Gotanda.pm#5 LT 資料
Perl Ͱ React.js ͷserver-side rendering ͕͍ͨ͠ʂGotanda.pm #5@zoncoen
View Slide
ͱ͍͏ਓ͍Δ͔͠Εͳ͍ʢੈք͍ʣ
Ͱ͖ΔΑ
What is React.js• JavaScript view library• Facebook
Why server-side rendering?• ॳظϩʔυ࣌ؒͷվળ• SEO!React.js ରԠͯ͠Δ
• React.renderToString()• ReactElement ͷ initial HTML Λฦ͢with Node.js web serverReact.renderToString(React.createElement(MyClass, {data: data}));
with other languages• Ruby (on Rails): react-rails!• Python: python-react!→ ֤ݴޠ͔Β JavaScript ͷؔΛ࣮ߦreact_component('MyComponent', {data: data}, {prerender: true})render_component('my-component.jsx', {'data': data}, to_static_markup=true)
Perl ͰΕΔʢͣ | ͖ʣ
How to implement• renderToString() ͷ࣮ߦ݁Ռ͕͋Ε͍͍→ Perl ͔Β JavaScript ͷؔΛ࣮ߦ
JavaScript::V8• Perl interface to the V8 JavaScript engine• Latest version released on 28 Dec 2012 …!• ͱΓ͋͑ͣ V8 v3.14.5.8 Ͱಈ͘͜ͱΛ֬ೝ
Example#!/usr/bin/env perluse strict;use warnings;use utf8;!use JavaScript::V8;!my $context = JavaScript::V8::Context->new();!my $result = $context->eval(q|(function () {return 'Hello, JavaScript world!';})();|);!print "$result\n";
Demohttps://github.com/zoncoen-sample/reactjs_server-side-rendering_with_perl