2020年2月6日のブックマーク (3件)

  • 必要に迫られてJavaScriptのMixinについて色々調べてみた結果 - Qiita

    あらすじ Google先生に教えてもらったmixinライブラリがどれもしっくりこなかったので、擬似多重継承ライブラリを自作したお話。 プロローグ ECMA6のClass構文を利用してHTML5 Canvasを便利に使うためのライブラリを作成しようとしていてふと手が止まった。 やりたいことは単純で、Canvas上にイメージライブラリを模したWindowを表示して、Window内のイメージをCanvas上にドラッグドロップするというだけのもの。で、早速Classを設計してみた。 コード共有と汎用性を考えて、CanvasとWindowはContainer、ImageはPlaceableのサブクラスとした。何の工夫もないが、極めて妥当な設計だ。またResponsible Web Designに対応できるよう、Containerには基的なAnchorレイアウト(描画オブジェクト間の関係を定義してサ

    必要に迫られてJavaScriptのMixinについて色々調べてみた結果 - Qiita
    bapho
    bapho 2020/02/06
    “理想形に近い書式を実現するライブラリが複数存在していることがわかった。mixwith.jsとes6-classes-mixin.jsだ。”
  • Vueのミックスイン(Mixin)を早く知りたかったという話 - Qiita

    前書き フロントを全く触ってこなかった私は、なぜか現在Vueでフロントを作っています。 コーディングに慣れていない私でも比較的スムーズに導入できたのですが、 最近知ったミックスインという機能をもっと早く知っておけばよかったと思ったので共有します。 Vueについて Vue (発音は / v j u ː / 、 view と同様)はユーザーインターフェイスを構築するためのプログレッシブフレームワークです。他の一枚板(モノリシック: monolithic)なフレームワークとは異なり、Vue は少しずつ適用していけるように設計されています。中核となるライブラリは view 層だけに焦点を当てています。そのため、使い始めるのも、他のライブラリや既存のプロジェクトに統合するのも、とても簡単です。また、モダンなツールやサポートライブラリと併用することで、洗練されたシングルページアプリケーションの開発も可

    Vueのミックスイン(Mixin)を早く知りたかったという話 - Qiita
    bapho
    bapho 2020/02/06
    “ミックスインを使うことで、複数のコンポーネントで共通のオプションを使用することができます”
  • 俺がやらかしたVue mixinのアンチパターンから学ぶmixinの使い方と代替案

    VueComponent間で再利用可能な部品を実装するための機能がmixinです。mixinを使った共通化の例はよく見かけますし、私もしばしばやってきました。ただ、どうも自分の実装方法だと後々不便になったり見通しが悪かったりと、使い勝手の悪いものになってしまうことが多かったです。 そこで今回は自分の過去の実装例を見返しながら、なぜ失敗したのか、mixinをどうを使うべきかについて、現時点の考えをまとめてみます。 この記事で紹介する失敗例は、私が携わったプロダクト開発においてデメリットの方が大きかった実装例です。 便宜上「アンチパターン」「失敗例」といった表現をしていますが、あくまで個人的にやりたくないパターン程度の意味合いです。 失敗例1. Template Methodパターンを意識したmixin 暗黙的挙動の危うさ OverrideではなくMergeしているだけ Classの継承とmi

    俺がやらかしたVue mixinのアンチパターンから学ぶmixinの使い方と代替案
    bapho
    bapho 2020/02/06
    “Vueなどのように知識が一般化されたフレームワークの暗黙的挙動ならまだしも、こういった「独自の暗黙的挙動」は負担になりやすい”