12日目オンラインレッスンのJavaScript
00
構成部品フィーチャー
1.コンポーネントは、独立した再利用可能な小さなUIブロックである.
2.render()でHTML要素の関数を返します.
3.JavaScript関数と同じ用途に使用します.
4.コードの効率的な管理を支援します.
IndexedDBの説明
1.ブラウザにオブジェクトを保存できます.
2.取引をサポートします.
3.JavaScriptベースのオブジェクト向けデータベース.
4.JavaScriptのオブジェクト、ファイル、blobsなどを保存できます.
01構成部品
構成部品
HTML要素をrender()で返す関数
独立した再利用可能な小さなUIブロック
Javascript関数と同じ用途
複雑なWebを小さなコンポーネントに分割することで、再利用を簡単かつ効率的に管理できます.
他のjsファイルの関数を読み込むことで使用できます。
App.js//App.js
const name = "Elice";
//컴포넌트선언
function Hello() {
return <h1> Hello,{name} </h1>;
}
export default Hello;
index.js//index.js
import Hello from './App';
ReactDOM.render(<Hello/>,
document.getElementById('root'));
return()でタグを使用してグループ化
//App.js
import Hello from './component/Hello.js';
import Post from './component/Post.js';
const name = "Elice";
//컴포넌트선언
function App() {
return (
<div className= "App">
<Hello/>
<Post/>
</div>
);
}
export default App;
関数構成部品とクラス構成部品
1)関数要素(傾向)const name = "Elice"
const Hello = () => {
return <h1> Hello, {name}</h1>;
}
//컴포넌트호출
const element =<Hello/>
ReactDOM.render(element,
document.getElementById('root'));
あまり複雑でないUIロジック
コンポーネントを簡単に宣言
メモリリソース使用率がクラスより低い
2)クラス構成部品import Component from 'react'
constname = "Elice"
class Hello extends Component {
render() {
return<h1> Hello, {name} </h1>
}
}
const element = <Hello/>
ReactDOM.render(element,
document.getElementById('root'));
カテゴリキーが必要
コンポーネントを継承する必要があります
Render()メソッドを使用する必要があります
メモリリソースは関数よりも多く
最近の関数型素子は実務で使用されています.
リターンエレメント
//App.js
import Nav from './component/nav/Nav.js'
importPosts from './component/post/Posts.js'
const App = () => {
return `
${Nav()}
<div class="container">
${Posts()}
</div>
`
}
01機能実装
IndexedDb
リレーショナルdbではありません
SQLの無効化
ブラウザ内のオブジェクトを保存できます
JavaScriptオブジェクト、ファイル、blobsなどを保存します.
取引のサポート
JavaScriptベースのオブジェクト向けデータベース->格納可能なデータ型とオブジェクト
クライアント(ユーザ)側ブラウザに格納するためのAPI
キー値でデータを格納
indexサポート->大量の構造化データの処理に適しています
localstorageよりも多くのデータを格納できます
操作順序
//App.js
const name = "Elice";
//컴포넌트선언
function Hello() {
return <h1> Hello,{name} </h1>;
}
export default Hello;
//index.js
import Hello from './App';
ReactDOM.render(<Hello/>,
document.getElementById('root'));
//App.js
import Hello from './component/Hello.js';
import Post from './component/Post.js';
const name = "Elice";
//컴포넌트선언
function App() {
return (
<div className= "App">
<Hello/>
<Post/>
</div>
);
}
export default App;
const name = "Elice"
const Hello = () => {
return <h1> Hello, {name}</h1>;
}
//컴포넌트호출
const element =<Hello/>
ReactDOM.render(element,
document.getElementById('root'));
import Component from 'react'
constname = "Elice"
class Hello extends Component {
render() {
return<h1> Hello, {name} </h1>
}
}
const element = <Hello/>
ReactDOM.render(element,
document.getElementById('root'));
//App.js
import Nav from './component/nav/Nav.js'
importPosts from './component/post/Posts.js'
const App = () => {
return `
${Nav()}
<div class="container">
${Posts()}
</div>
`
}
各
1.データベースを開く
let request = indexedDB.open(name, version);
let request = indexedDB.open('mydb', 1);
name:文字列、データベース名version:デフォルトでは正の整数バージョン、1
dbの変更時にバージョンを変更する必要があります
let onRequest = indexedDB.open('mydb', 1);
onRequest.onsuccess = () => {
console.log('Success creating or accessing db')
}
onRequest.onupgradeneeded = () => {
const database = onRequest.result
}
onRequest.onerror = () => {
console.log('Error creating or accessing db')
}
ローカル・データベース・バージョンが指定したバージョンより低い場合、onupgradeedがトリガーされ、データベース・バージョンがアップグレードされます.イベントはデータベースが存在しない場合にもトリガーされるため、初期化を実行できます.
2.オブジェクト記憶領域の作成
obejectStore
複数のキー値からなるデータを含むスペース
objectStoreの名前は一意でなければなりません
database.createObjectStore('스토어이름', {keyPath:'id'});
database.createObjectStore('스토어이름', {autoIncrement: true})
database.createObjectStore('스토어이름', {keyPath: 'id', autoIncrement: true})
onRequest.onupgradeneeded = () => {
const database = onRequest.result
const objectStore = database.createObjectStore('users', {keyPath: 'id'})
}
データベースが.onupgradeed()にアップグレードされると、ObjecteectStoreを作成または変更できます.createObjectStore(テーブル名)を使用して、ObjectStoreという名前のObjectStoreを作成します.
usersという名前のテーブルを作成します.
=>objectStoreリポジトリでusersテーブルを作成する
keyPathは、idを指定するために必要なインデックスフィールドの名前です.
const initializeDb = indexedDB.open('mydb', 1)
initializeDb.onupgradeneeded = () => {
const database = initializeDb.result
database.createObjectStore('users', {keyPath: 'id})
}
3.Transactionの開始:データの追加、読み取り、変更、削除
const transaction = database.transaction('ObjectStore이름', 'Transaction Mode')
すべてのデータの読み込みと書き込みはTransactionで完了ObjectStoreName:オブジェクトリポジトリ名
Transaction Mode: readonly, readwrite, versionchange
Transactionの開始
//users 테이블에서 transaction을 instance화
const transaction = database.transaction('users', 'readwrite').objectSotre('users')
トランザクションはデータベース・オブジェクト単位で動作するため、トランザクションを使用するオブジェクト・リポジトリを指定する必要があります.readwriteモードの使用:既存のObjectStoreデータの読み取りと変更時
ObjectStoreへのデータの追加
const todos = database.createObjeectStore('todos', {autoIncrement:true})
function addTodos() {
const todo = {
title: "todo1",
text: "no.1 thing to do"
}
// todos ObjectStore에 readwrite권한으로 transaction 시작하기
const transaction = database.transaction('todos', 'readwrite')
// objectStore()함수로 todos 테이블 선택
const todos = transaction.objectStore('todos')
// 원하는 객체(todo)를 테이블에 추가
todos.add(todo)
}
ユーザーデータの読み込み
1) objectStore.get(key);
const transaction = databse.transaction(['users'], 'readwrite')
const store= transaction.objectStore('users')
return store.get('Frank')
// {id: 3, name: 'Frank', age: 23}
2) objeectStore.getAll();return store.getAll()
// { id: 1, name: “Pete”, age: 35 }, {id: 2, name: “Mark”, age: 23 }, { id: 3, name: “Frank”, age: 23}
ユーザーデータの変更
return store.put('Frank')
ユーザーデータの削除
store.delete('Frank')
return transaction.complete;
Reference
この問題について(12日目オンラインレッスンのJavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@chss3339/엘리스-12일차-온라인-강의-javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol