タグ

ブックマーク / qiita.com/koba04 (15)

  • React.jsでAnimation - Qiita

    今回はReact.jsでのAnimationについて書きたいと思います。 React.jsではAddonとしてサポートされていて、CSS Animationを使ったCSSTransitionGroupとComponentのLifecycle MethodのようにMethodでフックして書く2パターンあります。 CSSTransitionGroup こちらではComponentの追加・削除時にCSSアニメーションさせることが出来ます。やりかたはAngular.jsやvue.jsのものに近くて追加・削除時にclassが追加されるのでcssにアニメーションを記述する感じです。 {transitionName}-{enter,leave}のclassName追加された後、次のイベントループで{transitionName}-{enter,leave}-activeのclassNameが追加されるの

    React.jsでAnimation - Qiita
  • React.jsのmixinについて - Qiita

    今回はComponentのmixinについて書きたいと思います。 mixinはまさにmixinなので概念自体については説明しませんがComponentの共通な振る舞いをObjectとして共通化することが出来てとても便利です。 React.js自体も、LinkedStateMixinやPureRenderMixinといった形でmixinを提供しています. ちなみにMarionette.jsでもBehaviorとして、Vue.jsでもmixinとして存在しています。 使い方 使い方はmixinsにObjectを配列として指定するだけです。 配列である通り複数指定することも出来ます。 var Logger = { logging(str) { console.log(str); }, componentDidMount() { this.logging("component did mount"

    React.jsのmixinについて - Qiita
  • Componentを拡張してみる - Qiita

    今回はちょっとした小ネタとして、既存のComponentを拡張したようなComponentを作りたい時の話をしたいと思います。 それには、v0.12で追加されたJSXのspread attributesを使うと簡単に出来ます。 テキスト付きの画像Component 例として、テキストと画像をセットにしたImageTextというComponentを考えてみたいと思います。 I/FとしてはimgのComponentに渡すものにプラスしてテキストで考えてみます。 var ImageText = React.createClass({ render() { return ( <span>{this.props.text}<img src={this.props.src} width={this.props.width} height={this.props.height} /></span> );

    Componentを拡張してみる - Qiita
  • React.jsがVirtualDOMを採用していて嬉しい事 - Qiita

    今回はReact.jsのVirtualDOMについて簡単に触れておきたいと思います。 VirtualDOMについては別途AdventCalendarがあるので詳しくはそちらを見てください。自分もReact.jsのVirtualDOMの実装について書いています。 当は↑だけでいいのですが、このAdventCalendarのどこかで触れておきたかったので重複する部分も多いですが簡単に触れておきます。 VirtualDOMの嬉しい点 JavaScriptを使ってDOMを操作して画面の表示を切り替えていくようなアプリケーションの場合、ユーザー体験を損ねないためにも更新されるDOMは最低限にしたくなります。 例えばBackbone.jsを使っていると、基的にはView単位でrenderするのでViewを細かく分割していくことが必要になります。そうなるとViewが増えて複雑さが増してきて辛くなって

    React.jsがVirtualDOMを採用していて嬉しい事 - Qiita
  • React.jsの地味だけど重要なkeyについて - Qiita

    今回はReact.jsのVirtual DOM実装の中でもユーザーが意識するべき点のkeyについて書きたいと思います。 React.jsではPropにkeyという値を指定することが出来て、Componentのリストを表示するような時につけていないとdevelopment環境だとconsole.warnで Each child in an array should have a unique "key" prop. Check the render method of KeyTrap. See http://fb.me/react-warning-keys for more information. と表示されます。 このkeyはVirtualDOMのdiffから実際のDOMに反映させるときに最小限の変更にするために使われます。 例えば var KeySample = React.creat

    React.jsの地味だけど重要なkeyについて - Qiita
  • React.jsでFormを扱う - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    React.jsでFormを扱う - Qiita
  • React.jsのEventについて - Qiita

    今回はDOMのイベントの扱いについて書きたいと思います。 SyntheticEvent React.jsではDOMをVirtualDOMとしてwrapしているようにDOMのイベントについてもSyntheticEventとしてwrapしていて、クロスブラウザ対応されています。 I/Fはこんな感じです boolean bubbles boolean cancelable DOMEventTarget currentTarget boolean defaultPrevented Number eventPhase boolean isTrusted DOMEvent nativeEvent void preventDefault() void stopPropagation() DOMEventTarget target Date timeStamp String type この通り、preve

    React.jsのEventについて - Qiita
  • React.jsのComponent Lifecycle - Qiita

    今回はComponentのlifecycleについて書きたいと思います。 React.jsではComponentの状態の変化に合わせて色々メソッドを呼んでくれるのでそれに合わせて初期化や後始末な処理を書くことが出来ます。 よく使うのはcomponentDidMountやcomponentWillUnmount辺りです。 イベントの登録をcomponentDidMountでやってcomponentWillUnmountで解除するというのがよく使うパターンだと思います。 componentWillMount() ComponentがDOMツリーに追加される前に一度だけ呼ばれます。 なので初期化処理を行うのに適しています。 この中でsetStateするとrender時にまとめて行われます。 server-side rendering時にも呼ばれるのでどちらでも動くコードである必要があります。 c

    React.jsのComponent Lifecycle - Qiita
  • React.jsでPropやStateを使ってComponent間のやりとりをする - Qiita

    今日はこれまでに紹介したPropやStateを使ったComponent間でやりとりについて書きたいと思います。 親のStateを子のPropとして渡す Componentを設計する時はまずPropとしてI/Fを考えて、そのComponentが管理すべき値で変更されるものをStateとして定義します。 つまりComponent間での親子の関係を意識して、親がStateを持っていて子にPropとして渡すというのが基になります。(子は使うだけで管理しているのは親) var User = React.createClass({ propTypes: { name: React.PropTypes.string.isRequired, id: React.PropTypes.number.isRequired }, render() { return ( <div>{this.props.id}:

    React.jsでPropやStateを使ってComponent間のやりとりをする - Qiita
    trapple
    trapple 2014/12/23
    7日目、一気に歯ごたえ出てきた。
  • React.jsのState - Qiita

    昨日はPropについて紹介しましたが、StateはPropがImmutableな値であったのに対してMutableな値を定義することが出来ます。 基的な使い方 基的にはgetIntialStateでstateの初期値を返して、データに変更があった場合にthis.setStateで更新します。 そうするとComponentがrerenderされて表示が更新されます。子のComponentもrerenderされます。 var Counter = React.createClass({ getInitialState() { return { count: 0 }; }, onClick() { this.setState({ count: this.state.count + 1}); }, render() { return ( <div> <span>{this.state.count

    React.jsのState - Qiita
  • React.jsのProp - Qiita

    今回は前回にも少し登場したPropについて取り上げたいと思います。 基的な使い方 Propは基的にはCompnentのattributeとして定義してComponentの中ではthis.props.xxxとして参照する。それだけです。PropにはObjectでも関数でも何でも指定することが出来ます。 var Avatar = React.createClass({ render() { var avatarImg = `/img/avatar_${this.props.user.id}.png`; return( <div> <span>{this.props.user.name}</span> <img src={avatarImg} /> </div> ); } }); var user = { id: 10, name: "Hoge" }; // <Avatar user={us

    React.jsのProp - Qiita
  • React.jsのComponentについて - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    React.jsのComponentについて - Qiita
  • React.jsのJSXを使ってみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    React.jsのJSXを使ってみる - Qiita
  • Hello React.js - Qiita

    というわけで、今回はHello World的なComponentを作ってみたいと思います。 基的にはReact.createClassでComponentを作って、それらのComponentを組み合わせてページを作ってReact.renderでDOMと紐付けることで表示を行います。 JSXを使う JSXについては明日のAdvent Calendarで書きますが、こんな感じでJSの中にXML likeにマークアップを直接書くことが出来ます。 といってもこのままブラウザで実行すると当然エラーになるので、react-toolsを使って事前にcompileするか、http://fb.me/JSXTransformer-0.12.1.js にあるようなJSXTransformerを事前に読み込んでおく必要があります。 また、browserifyでreactifyを使うなどして変換する方法もあります

    Hello React.js - Qiita
  • React.jsとは - Qiita

    このAdvent Calendarについて 今年になって急に盛り上がってきたように感じるReact.jsですが、「ちょっと前まではAngular.jsって言ってたのに!」っていう人も多いと思うので、Advent Calendar形式で簡単に紹介していきたいと思います。 React.jsの重要な要素であるVirtualDOMについては別にAdevent Calendarがありますのでそちらも是非見てください。 ※既に↑のAdvent Calendarがあったため、これは1人で書くように作ったものなので書く人が誰もいなかったわけではないです。 React.jsについて なぜ盛り上がってきたのかは正直よくわかっていないのですが、個人的にはgithubのatomがパフォーマンス向上のためにReact.jsを使うことにしたという記事を見て興味を持つようになりました。 React.jsはFaceboo

    React.jsとは - Qiita
  • 1