2019/05/07
Vue.js
コンポーネントによる構成
- 小さく、自己完結的で、再利用可能なコンポーネントを食み合わせることで大規模アプリケーションを構築できる
vueにおける
コンポーネント
は、予め定義されたオプションを持つVueインスタンスであるjsファイル
Vue.component('todo-item', { props: ['todo'], template: '<li>{{ todo.text }}</li>' }) var app7 = new Vue({ el: '#app-7', data: { groceryList: [ { id:0, text: 'Vegetables' }, { id:1, text: 'Chese' }, { id:2, text: 'Whatever else humans are supposed to eat' }, ] } })
- html
<div id="app-7"> <ol> <todo-item v-for= "item in groceryList" v-bind:todo="item" v-bind:key="item.id" ></todo-item> </ol> </div>
- プロパティのインターフェイスによって子コンポーネントは適切に疎結合な状態となった。 → うーん。
- さらに <todo-item> コンポーネントを、より複雑なテンプレートやロジックを使って、親コンポーネントに影響を与えることなく改良することができる。
- 大規模なアプリケーションでは、開発を行いやすくするために、アプリケーション全体をコンポーネントに分割することが必要。こういうふうになるらしい↓
<div id="app"> <app-nav></app-nav> <app-view> <app-sidebar></app-sidebar> <app-content></app-content> </app-view> </div>
Vueインスタンス
インスタンスプロパティまたはコールバックでアロー関数 を使用しないでください。 アロー関数は this をもたないため、this は他の変数と同様に見つかるまで親スコープをレキシカルに探索され
→レキシカルスコープ=静的スコープ 変数などが定義されたスコープや関数内に所属し、スコープ外の同名の定義に干渉しない。
テンプレート構文
- mustache タグは、対応するオブジェクトの msg プロパティの値に置き換えられます。
動的引数
- これ難しいな。javascriptをディレクティブの引数にできる。とだけ。
省略記法
v-bind:href
は:href
v-on:click
は@click
Ruby, Rails 関連
Time.zone.today
これなんだろ。ふつうのtodayと違うのか。
RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
- いつでも伊藤さんの記事に頼ってるなww
- Railsでは
application.rb
にデフォルトのタイムゾーンを設定できる。Time.zone
で確認できる。 意味は
Date.current
と同じ(日付型で今日)だけど、Dateクラスのインスタンスにはタイムゾーン情報が保持されないので、日付から日時に変換する場合は想定外に変換される恐れがある。←よくわかってないのでまた確認するデフォルトのタイムゾーン設定がしてあるということは、DBに保存されている日時もそれにならっているという認識でOK?これは何を読めばわかるのか……。
klass.pluralize
pluralize
単数形の名刺を複数形にする
underscore
:クラス名をファイル名に変換するAdminUser
→admin_user
、Admin::User
→admin/user
klass
は、クラスのインスタンスを変数にいれるときの慣用的な使い方らしい。
Git関連
- 毎回、最新developを取り込むときどうするのが正解か悩む。rebaseかmergeか、ほかにも?
- rebaseするとPRに全部表示されるのが……という記事を見た。たしかに。(開発用ブランチにMasterブランチの最新コードを取り込む - 試練の軌跡)
- 上参考に
merge
で対応してみたが、PR上はマージコミットが一つ増えるだけ。file changeもかわっていない。コンフリクトもしてない。これって取り込む前はコンフリクトしてたことになるよね?見てなかった……。