[TIL]主なスキルレビュー日

16938 ワード


2週間の反応特技の時間が過ぎた.
Reactを知っていますか.聞けば、答えは否定的だ.
2週間も諦めた気がするのがもったいないですね
最初から課題に没頭するよりは、個人学習に時間をかけるほうがいい.
a,bがc,dの私を呼び覚ますことができることを知っています
c,dから入れて、私は理解できなくて、疲れました.
しかし、今私はあなたに注意して、再び基礎から始めます.
今になって気づいたのですが、当時この文法を使っていたのが理由だったんですね.
私は他の人よりずっと遅れているスピードで急いでいるので、心の中では焦っていますが、自分のスピードで続けることが大切だと思います.
やりたくない心を心に埋めて、頑張りましょう!がんばってください.
##今日の勉強

1.thenとasync-awiteの違いは何ですか。

async-awiteはノードです.これはjsのもう一つのコア要素제너레이터から派生した形式である.
console.log("1");
const promise = new Promise(function (resolv, reject) {
  setTimeout(function () {
    resolv("success");
  }, 1000);
});
console.log("2");
promise.then(function (value) {
  console.log(value);
});

console.log("3");
上記のコードは、thenを使用する例である.
コードを回すと、コンソールは1->2->3->の順に撮影されます.
内部論理の終了時にresolveを放出するpromiseオブジェクトというpromise関数があります.例の内部ロジックはsettimeoutであるため、1秒後に解析が実行されます.
resolvが投げ出した成功値はresolvに含まれます.
約束が終わってから実行し、約束が成功したことを前提に、決意の価値をその時に投影する.
valueを受信すると、valueを使用して自分の論理を処理します.
import { async } from "@firebase/util";

console.log("1");
const promise = new Promise(function (resolv, reject) {
  setTimeout(function () {
    resolv("success");
  }, 1000);
});
console.log("2");
async function thenFunction() {
  console.log("thenFunction 함수 진입");
  const result = await promise;
  console.log(result);
}

console.log("3");

thenFunction();

console.log("4");
上記の例は、async-awite文を用いて同様の処理を行った.
撮影は、1->2->3->thenFunction関数->4->resultの順に行います.
3が撮影されると、thenFunctionが呼び出されるので、thenFunctionロジックに従いますが、promise関数は完了するまで非同期です.
そこで、まず4を撮って、完成してから撮ることに成功しました.
差異
  • は、その後、論理の代わりにawiteを使用して結果変数を生成する点が異なる.
  • を使用する処理と比較して、thenFunctionでいう位置に応じて、同期が必要な部分は外部関数と同期してもよい.
  • 2.リドスで守るべき3つのルールは何ですか。


  • アプリケーションにはショップが必要です.
    複数のショップを利用することは可能ですが、おすすめしません.一部の更新が頻繁すぎる場合や、アプリケーションの一部が完全に分離されている場合、複数のショップが作成される場合があります.しかし、この場合、開発ツールを利用することはできません.

  • stateは読み取り専用です.
    リアクターでstateを更新する必要がある場合はsetStateを使用し、配列を更新する必要がある場合は配列自体でpushを直接行うのではなくconcatのような関数を使用して、既存の配列を変更せずに新しい配列を作成し、置き換えて更新します.
    reduceでも同様に,既存の状態に触れずに新しい状態を作成して更新すれば,後で開発者ツールで後方に回転したり,前方に回転したりすることができる.
    不変性を維持し、管理状態を容易にするために、Immerを使用することができる.

  • 変化を引き起こす関数、reducerは純粋な関数でなければなりません.
    純関数には、次の特徴があります.
  • reducer関数は、以前の状態と動作オブジェクトをパラメータとして受け入れます.
  • 以前の状態は絶対に触れられず、新しい状態オブジェクトを作成して返し、変化させます.
  • 同じパラメータを呼び出すreducer関数は、常に同じ結果値を返さなければならない.
  • new Date()を使用しても、乱数を生成しても、ネットワークにリクエストを送信しても、純粋な操作ではなく、実行するたびに異なる結果値は表示されません.この場合、reducerミドルウェアを使用してreducer関数の外で処理することができる.

    3.s 3 bucketに配備した後、どのドメインを選択できますか。com以外の任意のキググググ.com、loginなどのページに移動すると、なぜエラーが発生するのでしょうか。


    以下は、常用S 3のURL形式である.
  • http://s3-ap-northeast-1.amazonaws.com/examplebucket10/Jellyfish.jpg
  • s 3-<クラッチ名>です.amazonaws.com/<パケット名>/<ファイル名>
  • 以下は、静的サイトを用いて管理されるS 3のURL形式である.
  • http://examplebucket10.s3-website-ap-northeast-1.amazonaws.com/Jellyfish.jpg
  • 『パケット名』.s 3-website-<バージョン名>です.amazonaws.com/<ファイル名>
  • はS 3サイトEndpointと呼ばれています.
  • これらのURLの形式には大きな違いがあります.次のURLに示すように、DNSサーバにCNAMEを設定するには、パケット名をサブドメインとして入力します.例文comドメインのCNAMEのexamplebucket 10.s3-website-ap-northeast-1.amazonaws.comに設定するとexampleになります.comに接続すると、bucket(例bucket 10)の内容がすぐに表示されます.
    CNAME設定は、AWSのDNSサービスRoute 53で設定することができる.また、Route 53でなくても、BINDなどの従来のDNSサーバ上で設定することができる.
    応答で各ページの内容に対応するプレビュー(サイト画像、サイト説明など)を表示するにはどうすればいいですか?react-helmetライブラリを使用すると、レンダリング関数でHelmet構成部品を使用してタイトル値を設定できます.
    <Helmet>
        <titie>
        <meta property = 'og:title' content = ' title ' />
        <meta property = 'og:discription' content = ' discription ' />
        <meta property = 'og:image' content = ' img url ' />
    </Helmet>
    

    4.Ridexにおいて、ミドルウェアブロックの役割は何ですか。

    redux-thunkは、reduxを使用するアプリケーションで非同期タスクを処理する際に使用されるミドルウェアである.redux-thunkを使用して、非動作オブジェクトの関数をdispatchに設定できます.
    デフォルトでは、reduxは、単純キーと値からなる動作オブジェクトdispatchを動作ジェネレータによって生成する.この場合、アクション作成者は、あるアクションを数秒後に実行したり、現在の状態で無視したりすることはできません.
    // 일반적인 액션 생성자
    // key-value로 이루어진 단순한 액션 객체를 생성
    
    const actionCreator = (payload) => ({action: 'ACTION', payload});
    ただし、redux-thunkを使用すると、アクション作成者は関数を作成することができるので、アクションオブジェクトがreducerで処理される前に、関数で様々な操作を実行することができる.例えば、必要に応じてasyncおよびawaitを使用してサーバと非同期で通信し、getStateを使用して現在の状態を知ることができ、dispatchは複数の動作を実行することができる.
    // redux-thunk를 이용해 1초 뒤 액션을 dispatch하는 함수를 생성할 수 있음
    
    const INCREMENT_COUNTER = 'INCREMENT_COUNTER';
    
    function increment() {
      return {
        type: INCREMENT_COUNTER
      };
    }
    
    function incrementAsync() {
      return dispatch => { // dispatch 를 파라미터로 가지는 함수를 리턴합니다.
        setTimeout(() => {
          // 1 초뒤 dispatch 합니다
          dispatch(increment());
        }, 1000);
      };
    }

    5.正確に言えば、プロミスは非同期ではない。非同期とプロセスはそれぞれ何ですか?


    非同期処理とは、 これはJavaScriptの特性が,特定のコードの演算が終了するまでコードの実行を停止することなく,先に次のコードを実行することを意味する.
    JavaScriptでは、非同期プログラミングの1つの方法は、次のとおりです. callback いろいろなパターンが使われています.コールバックモードの非同期動作が長ければ長いほど、コールバックが深くなり、エラー処理とデバッグも困難になります.
    このようなコールバック問題を解決するために、 Promise パターンが現れました.非同期オペレーションはコールバックではありません 次に接続します. catch ローラ制御とデバッグを容易に行うことができます.
    各承諾は、非同期演算がまだ完了していないことを示す保留状態から始まり、短いライフサイクルを通過します.予約承諾は不確定状態とみなされます.
    非同期レノボが完了すると、この承諾は確定(確定)状態と見なされ、2つの可能な状態の1つになります.
    待ち
  • (保留):結果待ちのステータス
  • 実行済み
  • (完了):正常に完了し、ステータスは
  • で、結果値があります.
  • 却下(却下):
  • 実行例外
    すなわち、タスクは非同期で実行され、オブジェクトはタスクが終了した後に実行が成功したか失敗したかを返し、成功と失敗の結果値は何ですか.

    6.TDZとは?


    TDZ(Temporal Dead Zone一時死角領域)とは、変数に近い範囲(範囲)の始点から初期化始点までの区間を指し、TDZ(Temporal Dead Zone)と呼ばれる.
    Javascriptの実行前にコード(=実行コンテキスト)を1回巡り、varとして宣言されたコードをすべて最上位レベル(=エスケープ)に引き上げます.したがって、varは呼び出しの下で宣言を実行することができる.
    ただし、varとは異なりletとconstは変数を宣言する前に呼び出されます.  ReferenceError  行ってきます.
    どうして間違えたの?選ばれなかったのではないでしょうか.
    正解は. ハウスティンでいいよ!
    しかし、発表後、 初期化フェーズでメモリにスペースを割り当てます.これは、初期化前にメモリにスペースがなく、変数を参照できないため、エラーが発生します.(varの場合、宣言と同時に初期化)
    これをTDZといいます.
    これはscopeに入ると変数を作成しTDZを生成するが、コード実行が(=実行コンテキスト)変数が存在する実際の位置に到達するまでアクセスできないためである.