About Reauire.js

18
About Require.js Kyohei Morimoto

description

社内の勉強会で使ったRequire.jsについての資料 とりあえず動かせる感じまでの内容です。

Transcript of About Reauire.js

Page 1: About Reauire.js

About Require.jsKyohei Morimoto

Page 2: About Reauire.js

アジェンダ

- Require.jsって?

- 何ができるか?

- 使い方

- 課題

Page 3: About Reauire.js

現状の問題点‣ フロントエンド開発の複雑化

‣ 多量のライブラリが必要(jquery underscore backbone + plugins)

‣ モジュール開発

‣ ブラウザで適切なライブラリは4~8程度

‣ 全部読み込むまではブラウザは表示されない

Page 4: About Reauire.js

index. html

app.js

lib3

lib4

lib1

lib2

mod1

mod2

mod3

‣ 読み込む量が多くて大変

‣ パフォーマンスも悪い

‣ ※CAは10000行のJSをBB化したら、90ファイルになったそうな…

Page 5: About Reauire.js

app.js

lib3 lib4

lib1

lib2

mod1

mod2

mod3

‣ 読み込み順番や依存関係がある

‣ 本来読み込まなくて良い物まで読み込んでいたりする

‣ 特にSPA

Page 6: About Reauire.js

Require.js

Page 7: About Reauire.js

app.js

lib3 lib4

lib1

lib2

mod1

mod2

mod3

‣ 必要なライブラリやモジュールだけを読むようにしてくれる

‣ 読み込むものをまとめてくれる

Page 8: About Reauire.js

使い方

<script data-main="app" src="js/vender/require.js"></script>

Page 9: About Reauire.js

使い方:Requireの設定requirejs.config({ baseUrl : 'js', paths : {  // 読み込み先のパスを設定できる // '/'または'http'から始まると絶対パスで参照する jquery : [ 'lib/jquery.min', ], underscore : [ 'lib/underscore-min', ], backbone :'lib/backbone-min' }, shim : { //AMDに対応してないものを対応させる underscore : { exports : ‘_' //jqueryだったら、$ }, } });

Page 10: About Reauire.js

おさらい

‣ baseUrl:ルートのパスを設定

‣ paths:で利用するライブラリのpathsを設定する

‣ shim:AMDに対応してないライブラリを対応させる

Page 11: About Reauire.js

使い方:モジュールの定義

define(['backbone'], function (Backbone) { console.log(Backbone === window.Backbone); // true });

Page 12: About Reauire.js

使い方:モジュールの定義(何か値を返す)

define(['backbone'], function (Backbone) { var myModule = Backbone.Model.extend({}); return myModule });

Page 13: About Reauire.js

おさらい

define([‘使うライブラリ’],function(ライブラリ名){ //処理 }); !

‣ 読み込み時に必要なライブラリを設定する

Page 14: About Reauire.js

使い方:モジュールの呼び出し

require([‘foo’],functions(foo){ foo.doSomething(); });

Page 15: About Reauire.js

おさらい

‣defineとよく似てる

‣defineは依存で、requireは取得のイメージ

‣clickイベントなどに紐付けると後からファイルを取得することができたりする

Page 16: About Reauire.js

Demo

Page 17: About Reauire.js

課題

Page 18: About Reauire.js

app.js

jquery

index. html

BackBone

under Score

moment

highcharts

view.js

model.jsclickEvent

alert(“Hello World”)

各種依存関係