Practice2

GitbookGraphql2021-03-04


πŸ“‘ useQuery, useLazyQuery, useStaticQuery


  1. no robomongo, mysql workbench tools
  2. const {loading, error, data} = useQuery(gql, {variables})
  3. similar with useContext

πŸ“‘ useRef, useCallback, useMemo, createContext/useContext+useReducer=global-store


const inputEl = useRef(null)

const onButtonClick = () => {
  inputEl.current.value
}

<input ref={inputEl} type='text'/>
<button onClick={onButtonClick}>Click</button>

πŸ“‘ query


  • getTodo(id: ID!): Todo
  • listTodos(filter: TableTodoFilterInput, limit: Int, nextToken: String): TodoConnection

πŸ“‘ mutation


  • createTodo(input: CreateTodoInput!): Todo
  • updateTodo(input: UpdateTodoInput!): Todo
  • deleteTodo(input: DeleteTodoInput!): Todo

πŸ“‘ subscription


  • onCreateTodo(id: ID, title: String, completed: Boolean): Todo @aws_subscribe(mutations: [β€œcreateTodo”])
  • onUpdateTodo(id: ID, title: String, completed: Boolean): Todo @aws_subscribe(mutations: [β€œupdateTodo”])
  • onDeleteTodo(id: ID, title: String, completed: Boolean): Todo @aws_subscribe(mutations: [β€œdeleteTodo”])
input TableTodoFilterInput {
  id: TableIDFilterInput
  title: TableStringFilterInput
  completed: TableBooleanFilterInput
}

input CreateTodoInput {
  title: String!
  completed: Boolean
}

input UpdateTodoInput {}
input DeleteTodoInput {}