Aura コンポーネントの基本概念
日本語が長ったらしく意味不明なので、調訳。
- バンドルと要求のライフサイクルについて
- 根本的にブラウザ側で動作するコンポーネントである。
- ハンズオン内容は、ほとんど空っぽの Aura Component を作成してデプロイするだけなので、特にハマることはないはず
- アーキテクチャ概念について
- 概念: 複数ページアプリケーションと単一ページアプリケーション:
VFみたいに画面をページ遷移して処理する…様な扱いではなくて、画面状態を変更するという形で画面を変えていく。単一ページ内で状態を変えながら処理していくモデルを単一ページアプリとここでは定義してる。 - 概念: ページとコンポーネント:
Aura Component は一つ一つ独立した小さなコンポーネントを、1ページ内に複数配置して動作させるイメージになる。 - 概念: アプリケーションコンテナ
Aura コンポーネントは Lightning Experience をはじめとした色々な箇所で利用できる。
Salesforce Classic, VF, Salesforce アプリケーション, Lightning Experience ... これら動作させる環境を「コンテナ」と呼んでるっぽい。
コンテナによってイベントを飛ばしても処理されないことがある。
コンテナは入れ子構造にできるが、実行する Aura コンポーネントが利用できる機能は直近の親コンテナの機能だけだ。
- 概念: 複数ページアプリケーションと単一ページアプリケーション:
- コーディング概念について
- 概念: コントローラ
Aura コントローラはブラウザ上で動く。データ操作とか欲しければ Apex のコントローラを挟め。 - 概念: アクション
JavaScript で関数書く。class とかそういう言語機能のない時代の産物なので、オブジェクトプロパティとして関数を追加していく。
「,」に注意は、後の問題にも出る。- コンポーネントの属性
aura:attribute
で属性宣言しなけばならず、コントローラからのアクセスもcomponent.get('v.属性名')
component.set('v.属性名', 値)
しないといけない。
この「component」 は環境の暗黙変数(暗黙とかクソやんと恨み言を吐きたい)。
一応、「component.変数名 = 値
」で突っ込みもできなくない(JavaScript Expando)けど、非推奨。
- コンポーネントの属性
- 概念: メソッドコールとイベント
コントローラと画面は直接的にメソッドコールできない。やるならイベント経由。
- 概念: コントローラ
なんというか長いうえに冗長過ぎてわかりにくい。
データモデリング
- カスタムオブジェクトと標準オブジェクトについて
- オブジェクトの概要
データベーステーブルはオブジェクト、列は項目、行はレコード これ以上言うことがない。なんでこんな長く説明するんだ… - オブジェクトについて知る
Salesforce ビルトインの 標準オブジェクト と、会社や業種、またはアプリ固有の カスタムオブジェクト がある。
カスタムオブジェクトは名称の後ろに__c
が追加される。カスタムオブジェクトには自動で以下の項目が追加される- ID : 自動生成ユニークプライマリキー (個人的にカスケード嫌いなので個の仕様は好き)
- システム系統項目 : CreatedDate, UpdatedDate CreatedBy, UpdatedBy, OwnerId, LastModifiedDate など。システムなので自動更新項目。
- 名前 : Name フィールド、自動採番にもできる。
カスタム項目は文字列とかテキストエリアとかも指定できるが、独特なのに Datetime(UTC でしか保存されない) と、Date (こっちはローカル日時)、数式(レコード保存時に数式を評価して自動設定される型)、複数選択項目(保存時
;
で文字列保存されてる型)がある。
- オブジェクトの概要
- オブジェクトリレーションの作成
- リレーション系は 参照関係 と 主従関係 がある。参照は普通のデータベーステーブルの外部キー。主従関係にすると親子関係をかなり厳密に処理する。二つ以上主従できないとか親が消えると子がすべて消えるとか(カスケード)。
- スキーマビルダーの使用
使い方の説明と試しだけです。