トリリンガル+すぅぱぁフロントエンジニアになるまで

気になったことを日々書いていきます

React:useEffectについて

useEffectは、
デフォルトでは副作用関数はレンダーが終了した後に毎回動作しますが、
特定の値が変化した時のみ動作させるようにすることもできます。

useEffect はブラウザが描画を終えるまで遅延されますが、次回のレンダーが起こるより前に実行されることは保証されています。
React は新しい更新を始める前に常にひとつ前のレンダーの副作用をクリーンアップします。

条件付きで副作用を実行する

デフォルトの動作では、副作用関数はレンダーの完了時に毎回実行されます。これにより、コンポーネントの依存配列のうちのいずれかが変化した場合に毎回副作用が再作成されます。
しかし、上述のデータ購読の例でもそうですが、これは幾つかのケースではやりすぎです。新しい購読を設定する必要があるのは毎回の更新ごとではなく、source プロパティが変化した場合のみです。
これを実装するためには、useEffect の第 2 引数として、この副作用が依存している値の配列を渡します。変更後の例は以下のようになります。

useEffect(
  () => {
    const subscription = props.source.subscribe();
    return () => {
      subscription.unsubscribe();
    };
  },
  [props.source],
);

これで、データの購読は props.source が変更された場合にのみ再作成されるようになります。

空の配列 [] を渡すと、この副作用がコンポーネント内のどの値にも依存していないということを React に伝えることになります。
つまり副作用はマウント時に実行されアンマウント時にクリーンアップされますが、更新時には実行されないようになります。

Googleスプレッドシートを使って、Googleアナリティクスの分析結果をレポート出力する

 

Googleスプレッドシートを使って、Googleアナリティクスの分析結果をレポート出力する

 

1.Googleスプレッドシートを開いて、ツールバーのアドオンを選択する。

2.Analiticsのアドオンを追加する

f:id:balu0501:20201201123117p:plain

アドオンを追加

3.Run reportsを選択する

f:id:balu0501:20201201123200p:plain

create new reportを選択する

4.アナリティクスで設定しているサイトが、2)Select a viewから選択することができる。

ここに表示されない場合は、アナリティクス側の設定を確認すること

 

f:id:balu0501:20201201123255p:plain

検索内容を設定する

f:id:balu0501:20201201123508p:plain

検索内容

 

5.Run reportsを実行して、レポートを作成する

f:id:balu0501:20201201123329p:plain

run reportを選択する

6.レポートが無事作成されたことを確認

 ※デモアカウントでは、レポートは作成することができないみたい

  試しにやるなら、はてなブログを無料で作成して、それに対して、GoogleアナリティクスのトラッキングIDを設定するのが一番てっとり早いと思う

f:id:balu0501:20201201123538p:plain

検索結果

アクセス数が発生しないと統計の結果を検証できないという・・・(笑

Googleアナリティクスの設定に苦労

今日はGoogle アナリティクスの設定を、はてなのブログと連携しようとした。

 

夜12時から始めたのに、設定が終わるのに40分もかかってしまった。

 

理由としては、トラッキングIDが発行されなかったからだ

 

なんと、設定が新しくなったらしく、自分で意図してトラッキングIDを発行するように設定しないと、いつまでたっても管理画面にトラッキング情報という項目は表示されない

トラッキングの設定

ラッキングの設定

プロパティを押下する

 

詳細オプションを表示を押下

詳細オプションを表示を押下

トグルボタンをオンにする

トグルボタンをオンにする

最後にトグルボタンをオンにして設定を続けると、トラッキングIDが発行される

 

こんなことに時間がかかるとは。。。。

VBAでAutoFilterの複数列の条件を追加する場合

Sub midashi()
 Range("B3:D15").AutoFilter _
 Field:=2, _
 Operator:=xlFilterValues, _
 Criteria1:=Array("あああ", "")

Range("B3:D15").AutoFilter _
 Field:=3, _
 Operator:=xlFilterValues, _
 Criteria1:=Array("10", "15")
End Sub