Managing Data Outside React
Query μ μ§νκΈ°
Relay κ° μ°Έμ‘° λ°μ΄ν°λ₯Ό κ°λΉμ§ 컬λ ν
νμ§ μλλ‘ query λ₯Ό μλμΌλ‘ μ μ§νκΈ° μν΄ environment.retain
λ©μλλ₯Ό μ¬μ©ν μ μμ΄μ.
const {
createOperationDescriptor,
getRequest,
graphql,
} = require('relay-runtime')
// μΌλ°μ μΈ GraphQL query μ€λΈμ νΈ
const query = graphql`...`;
// query λ₯Ό Relay κ° λ€λ£¨λ λ°©μμΌλ‘ κ°κ³΅νμ¬ μμ±ν΄μ
const queryRequest = getRequest(query);
const queryDescriptor = createOperationDescriptor(
queryRequest,
variables
);
// Retain query;
// Relay κ°λΉμ§ 컬λ μ
μ΄ μ΄ query λ°μ΄ν°λ₯Ό μκ±°νμ§ μλλ‘ ν΄μ.
const disposable = environment.retain(queryDescriptor);
// dispose λ₯Ό νΈμΆνλ©΄
// μ΄ query λ Relay μ κ°λΉμ§ 컬λ μ
λμμ΄ λμ΄ λ°μ΄ν°λ₯Ό μκ±°ν μ μμ΄μ.
// λ¨, λ€λ₯Έ μμΉμμ ν΄λΉ query λ₯Ό retain νμ§ μμμΌ ν΄μ.
disposable.dispose();
μμλμΈμ
Relay λ data λ₯Ό render νλ mount μνμ query μ»΄ν¬λνΈλ₯Ό κΈ°λ°μΌλ‘ query data retain μ μλμΌλ‘ κ΄λ¦¬ν΄μ. κ·Έλμ μΌλ°μ μΈ μν©μμλ production code μμ retain μ μ§μ νΈμΆν νμκ° μμ΄μ. μ’ λ νΉμνκ±°λ κ³ κΈμ μΈ μ¬μ©μ κ³ λ €νλ€λ©΄, query data retention μ Router μ κ°μ infra-level μ½λμμ λ€λ€μΌ ν΄μ.
Last updated