いろいろ備忘録

雑記です。

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

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


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

 

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

 

qiita.com

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'));

 

VivusのSVGにInkscapeのものを利用する

1.編集→Inkscapeの設定→入出力→SVG出力 にて、パスの文字列形式:絶対座標 数値精度:5 最小指数:-2にする 2.新規の画像にする 3.文字をなんか打つ 4.文字を右クリックしてフィル/ストロークでフィルを無効、ストロークを有効にする 5.パス→オブジェクトをパスへ 6.保存するときはプレーンsvg