TIL day 12


🍑 Components

  • render()html要素を返す関数
  • 独立で再利用可能な小さなUIブロック
  • Javascript関数の用途は同じ
  • component分割はコード再利用を容易かつ効率的に管理できる
  • 常に大文字で始まる
  • クラス素子よりも関数型素子の方が先進的な技術である.
  • 🍑 Templete Literal

  • `${content}`如何表示
  • 使用する変数名を${}にラップすればよい.
  • const name = 'Circlewee';
    const age = 26;
    
    console.log(`name: ${name}, age: ${age}`); // name: Circlewee, age: 26

    🍑 Indexed DB

  • JSベースのオブジェクト向けデータベース->格納可能データ型とオブジェクト
  • ブラウザオブジェクト、JSオブジェクト、ファイル、blobsなどを保存
  • key-value形式のデータベース
  • Transaction機能
  • localstorage
  • タスク・シーケンス
    1.データベースを開く
    DBを変更する場合はバージョンを変更する必要があります.
      let request = indexedDB.open('name', version);
    2. データベースにObjectStoreを作成する
    3.Transactionの開始-データの追加、取得操作の要求
    4.indexごとにDOMイベントを受信
    5.実行結果
  • 🍉 ObjectStore

  • 複数のキー値を含む空間
  • ObjectStoreの名前は一意である必要があります
  • const usersStore = database.createObjectStore('users', {keyPath: 'id'})
    const usersStore = database.createObjectStore('users', {autoIncrement: true})
    const usersStore = database.createObjectStore('users', {keyPath: 'id', autoIncrement: true})
  • userStoreリポジトリにはusers
  • という名前が作成されています.
    onRequest.onupgradeneeded = () => {
      const database = onRequest.result;
      const objectStore = database.createObjectStore('store name', {keyPath: 'id});
    }

  • データベースが.onupgradeed()にアップグレードされたときにObjectStoreを作成または変更する

  • ObjectStoreの作成
  • const initializeDB = indexedDB.open('myDB', 1)
    initializeDB.onupgradeneeded = () => {
      const database = initializeDB.result;
      database.createObjectStore('users', {keyPath: 'id});
    }

    🍉 Transaction

    const transaction = database.transaction('objectStore Name', 'Transaction Mode');
  • すべてのデータの読み取りと書き込みはトランザクション内で完了
  • objectStoreName:オブジェクトリポジトリ名
  • Transaction Mode: readonly, readwrite, versionchange
  • // users 테이블에서 transaction을 instance화
    const transaction = database.transaciton('users', 'readwrite').objectStore('users');
  • transactionはデータベース・オブジェクト単位で動作するため、transactionを使用するオブジェクト・リポジトリ
  • を指定する必要があります.
  • 「readwrite」モードを使用:既存のObjectStoreデータの読み取りと書き換え時
  • const todos = database.createObjectStore('todos', {sutoIncrement: true});
    function addTodos() {
      const todo = {title: 'todo1', text:'no.1 thing to do'};
      const transaction = database.transaction('todos', 'readwrite');
      const todos = transaction.objectStore('todos');
      todos.add(todo);
    }