Vue depende da coleta desde a entrada até a proficiência (início, proficiência para ser aperfeiçoada)

Quero estudar o princípio de vue e fazer um auto-resumo.

Artigo de referência:
segredo de tecnologia Vue.js: muito detalhado, introdutório obrigatório,
conexão profunda do princípio de coleção de dependências vue: mais exemplos, tutoriais avançados
Modo observador do código-fonte vue: habilidade insuficiente, temporariamente incapaz de integrar o
código-fonte vue. Análise de detalhes: habilidade insuficiente, temporariamente incapaz de integrar

A coleção de dependências de vue está relacionada ao dep e watcher.
dep: Abreviação de dependência , que significa dependência e o conceito de assinante no modelo de observador .
observador: o significado do observador

começando

  Introdução É altamente recomendável ler o primeiro artigo acima. No entanto, a integração da harmonia e a formação de seu próprio sistema de conhecimento sempre parecem quase sem sentido.
  Primeiro, escrevo minha experiência de começar .
Dificuldade um:

addDep (dep: Dep) {
  const id = dep.id
  if (!this.newDepIds.has(id)) {
    this.newDepIds.add(id)
    this.newDeps.push(dep)
    if (!this.depIds.has(id)) {
      dep.addSub(this)
    }
  }
}
  • addSub é adicionar o inspetor atual ao sub para notificação quando os dados forem alterados.
  • newDepid e depid, newDep e dep serão trocados, então enquanto houver id no dep, deve haver watcher no sub . Se o dep não tiver um id, sub adicionará um watcher. Quando dep e newDep forem trocados , é garantido que , desde que dep tenha um id, haverá um watcher no sub

Dificuldade 2:

let i = this.deps.length
while (i--) {
    const dep = this.deps[i]
    if (!this.newDepIds.has(dep.id)) {
      dep.removeSub(this)
    }
  }
  • Esta é a última etapa antes da troca

  • Antes da troca, o dep já pode ter um watcher

  • Se houver dep, mas não newDep, a coleção de dependências atual não precisa notificar este inspetor, portanto, é removida do sub.

Resumindo

 Embora pareça estar começando, ainda falta um combate real , e ainda falta sentido para a integração . Vou estudar o código-fonte novamente e continuar a melhorar este artigo

Acho que você gosta

Origin blog.csdn.net/a519991963/article/details/96473749
Recomendado
Clasificación