valueとdefaultValueの違い

単にデフォルト値を設定したいだけなら、defaultValue

入力された内容を扱いたいときvalue

 

defaultValue:デフォルト値を設定する。

value:実際の値。onChangeイベントハンドラに変更を反映する処理を書かないと、デフォルト値から値が変更できなくなる。

2.10 プロパティの事後変更について

このセクションの要旨は、
ReactDOM.renderを同じコンポーネント同じコンテンツに2回以上行ったときは、全てがすげ替えられるわけではない、ということ。


変更を最小限にするために、最初のオブジェクトにpropsとstateが渡され、ライフサイクルに応じたいくつかのメソッドが呼び出される。

 

getInitialState()は二度目からは実行されないので、そこでpropsからstateに代入している際は、componentWillReceiveProps()などを実装しなければ、二度目のrender()でstateは更新されない。propsは更新される。

 

qiita.com

React Typescript Webpack

create-react-app my-app --scripts-version=react-scripts-ts

 

cd my-app

 

npm install --save react react-dom @types/react @types/react-dom @types/node

 

npm install --save-dev typescript tslint tslint-react  awesome-typescript-loader source-map-loader

 

後はこの途中から

React & Webpack · TypeScript

BluemixのSDK for jsに既存のプロジェクトをデプロイする

1.新しいインスタンスを作成する。

2.デリバリーパイプラインを有効にする。途中でクローン先のURLを入力できるので、そこにGitHubとかのURLを入力

3.新しく出来たリポジトリをローカルにクローンしてmanifest.yml, .project, .cfignoreをサンプルからコピペしてくる。内容は適宜環境に応じて変更する。

 

DBとかと連携する時

1.BluemixのサイトやCLIで連携する

2.プロジェクト上でnpm install --save cfenv

3.サンプルを見ながらcfenvを使って資格情報を取得する

Node.jsでwsとExpressのセッションを共有する

const sessionMW = session({
//セッションIDの鍵
secret: 'aaaaaaaaaaaaaaaaaaaa',
//セッションの変更を自動で保存しない
resave: true,
//未初期化状態のセッションを保存しない
saveUninitialized: false,
//アクセス時に有効期限を延長しない
rolling: false,
//発行するクッキーの名前
name: "sessionInfo",
cookie: {
//jsからクッキーを読み込ませない
httpOnly: true,
//HTTPSでのみ送信する
secure: false,
//2時間で失効する
maxAge: 1000 * 60 * 60 * 2
}
});
app.use(sessionMW);
const verifyClient = (info, done) => {
sessionMW(info.req, {}, () => {
console.log(info.req.session);
if (typeof info.req.session.userid !== "undefined") {
console.log("セッションあった");
done(true);
} else {
console.log("session not found");
done(false, 401, "please login");
}
});
};
const wsServer = new ws.Server({
verifyClient: verifyClient,
server
});

Bootstrapとかをnpm installしてクライアントから参照させる

publicを参照させる時みたいに、node_modules内の当該ディレクトリのみ参照させる。

app.use('/bootstrap', express.static(__dirname + '/node_modules/bootstrap/dist'));

 

AndroidのDataBindingでBRに追加されないとき確認すること

1.getterに@Bindableアノテーションを追加していること

2.getterの名前がget + フィールド名であること