26日)

10245 ワード

楽しい6週目のレッスン!!
(わあ、私は毎日このようなシナリオを書くことができるジェニーンリックではありません...あいつのジェニーンリック、ジェニーンリック、ええ、あ!!1)
ついにマスターしました呜呜!!!!!!!!!

-非構造化割り当て(=構造分解割り当て)


既存のオブジェクトの値を抽出時に表示しやすくするには、構造化されていない書き込み方法を指定します.
カッコは、オブジェクトからキー値を減算し、変数として宣言します.

このように関数名()を書くときは常に戻り値があります.
その値段にはconst~部分があるという意味です.
以下を例にとると、受け入れる(data,load)という意味です!
しかし実際には,戻り値をオブジェクトとして受信すると,{}オブジェクトとして受信しなくても,
構造を分解してそのように受け入れることができるでしょう(分配できるでしょう)!
->aaaは一度に受け取り、aaa.data , aaa.loading..

この3行は1行に縮まったでしょう。



私たちuseState()=const[,]はこう書いてあります!

setCounterが交換してくれた値は、交換関数なので、カウンタを20に交換したいなら
setCounter(20)はこう書いてあるのでbbb[1](20)!実際はそう書いていません
構造分解配分を理解するために、そう思いましょう!

これではもったいない!
戻り値はオブジェクトなので、カッコで受信できます!

データを使ってfetchboards.作家に選んで書くことができます!
配列を見てみましょう.
私たちがconst[,]=usState()をするときに必ず書く理由!

ここにカンマを書かないとchild 2に哲秀がいる!

関数を作って、前は何を使って、後ろは何を使って名前をつけます
その戻り値は配列されているので、名前をつけたり、配列したりして、受け取ることができます!
だから原理を理解すればこんな部分まで使える!

では、オブジェクトと配列の違いは大きくありませんか?
オブジェクト-キー値が重要で、キー値を変数として出して受け入れるのではないでしょうか.彼は順番を気にしないで、彼の身長はとても重要です.
const{age,school}=profileはここではageを年齢としているので、二人で順番を変えても大丈夫です.名前が同じならいいです!
並べ替え-順序が重要です!順番を守るために空きパートナーを撮ってあげたり、
なぜuseStateは平らなの?

  • 変数に名前を付けるので、希望の順序で希望の値を得ることができます.
    なぜuseQueryはオブジェクトですか?
  • このオブジェクトからschoolを変数として選択!だから関数から抽出した部分...!

    配列値の部分を指定します!

    配列とオブジェクトの構造分解配分を覚えますか?



    -cont{}cont[]の違いは何ですか?


    -オブジェクトからデータを削除してみます。rest - parameter


    今、削除したいときに削除するかどうか見てみましょう.
    でも実は簡単にdeleteをつけるとDam!

    しかしJavaScriptで元のファイルに触れる行為はよくありません(childはどこで使うかもしれません)
    だからそのまま原本に触れるのはよくない.
    お金と趣味だけを分配したい場合、分配構造が分解されます!
    これでいいです.残りのすべての子供(name,age,school)をrestに入れます!

    ではrestの中には私の欲しいものを削除した人しかいません!

    もちろんrest以外の名前でもいいです!

    -HOCは授業に使用されますか?custom hooks


    useRouter, useQuery, useMutation....ちょっと待ってください.
    funtion useAaa(){ }
    だからCustom Hookを作ることができます!
    普通の関数に私たちが使っているuse機能があれば、名前はuseaaで、そうでなければ、直接名前をつけることができます!
    ^これらの友人はcustom hooksになります(useファミリーと書いてありますので、関数名にuseを付けてください!)
    私が学んだuse友達(userouter、userState、userQuery、userMutation、userEffectなど...)

    useauthという関数を構成部品として作成し、元に戻したページが開く前に関数を実行します.
    権限割り当てを実行する様子を見てみましょう.

    私たちはあなたにこのようなIDをあげません.

    これにより、1つの関数に値を与えることができ、ページをめくるたびに、追加したい機能(オフセット写真、検証付加など)を加えることができます.

    -refetchの問題/改善方法


    今はリフレッシュしていない状態なので、リフレッシュせずにキューに直接触れる方法でやりましょう.

    上で勉強していることを理解してください.

    2つの方法の違いを理解する

    順番が混ざっていて、入れなくてもいいので、キーの値が同じならいいでしょう.だから構造分解配分が行われます!
    パッチを再パッチしましたが、そうはしませんでした.updateはglobalstate(?)を直接変更しました.

    データの中のキー値としてロード!
    戻り値はdataです.deleteBoard data.createBorad
    アポロcachestateでは、各データが{data}クエリによって読み込まれたデータがグローバルstateに格納されます.globalstate(apollo-cache-state)では、fetchboard:{}がこのように保存されてキャッシュされます.修正して直接修正したいのです
    配列からオブジェクトをマージするには

    スプレッドシート演算子を使ったのを覚えていますか?
    だから最新の投稿
    globalstateで使用しているすべての構成部品が更新され、新しい形式です.
    その引き出し板は一緒に使っていたすべての人が交換しました!

    - Cache-Modify


    -アルゴリズムレッスン


    これは前に使った方法で、どうして思いもよらなかったのですか.
    Replace!
    書き込みのみで前のデータが変わるので重複するデータは変換できません!
    だからreplaceAllを使うと、中のすべてのデータを検索して変更します.
    
    str = "123452"
    str.replace("2","0")  // "103452"
    str.replaceAll("2","0") // "103450"
    
    そうですか.
    replaceAllを使用せずにwhile文を使用する場合

    正規表現で解く
    新鮮で面白い
    /オン/オフ、およびスラッシュに検証文字列を追加
    /gコマンドはグローバル検索を表す
    s = s.replace(/zero/g,0)
    s = s.replace(/one/g,1)...이런식으로 진행한 후
    return Number(s)
    이걸 for와 정규표현식으로 같이 쓸수 있어! (10번 반복해서 써준건 좋은 코드가 아니니까!) 
    
      const numbers = ["zero","one","two","three","four","five","six","seven","eight","nine"]
      
    function solution(s){
      for(let i =0; i<numbers.length; i++){
      	const regExp = new RegExp(numbers[i],"g")
         s = s.replace(regExp,i)                
                                      //(정규표현식안에 변수를 사용할수 있게하는 친구)} 
              return Number(S)
      }