Vue: [Sugestão] Vue 2.0 - vm. $ AppendTo - componentes singleton

Criado em 29 abr. 2016  ·  3Comentários  ·  Fonte: vuejs/vue

Meu padrão de singleton atual é Vue.extend o componente e chamar $appendTo(body) em compile no primeiro require e retornar vm em todos os outros .

Quando vm.$appendTo for removido, precisarei de outra maneira de criar componentes singleton.
Talvez algo assim:

replace: false
el: => document.body

Em vue-comps , tenho atualmente 3 componentes singleton:

  • vue-comps-waves - tem uma loja svg de singleton oculta que serve todas as instâncias de waves com as animações svg
  • vue-toster - a mesma instância deve ser compartilhada por todos os componentes que a usam
  • vue-overlay - uma única sobreposição para escurecer o fundo que mantém o controle do z-index de todos os componentes que o usam
discussion

Comentários muito úteis

Você precisa chamar $mount() sem argumentos (o que cria vm.$el ) antes de anexá-lo, mas caso contrário, deve funcionar.

Todos 3 comentários

Não entendo muito bem a necessidade de $appendTo() aqui - você pode apenas usar métodos DOM nativos em this.$el , qual é a diferença?

Talvez eu esteja apenas confuso sobre

anexado obsoleto, os componentes não têm mais a possibilidade de estar off-dom

Isso vai funcionar?

Comp = Vue.extend(someComp)
vm = new Comp() # vm is off-dom here ?
document.body.appendChild(vm.$el)

em caso afirmativo, isso pode ser fechado ..

Você precisa chamar $mount() sem argumentos (o que cria vm.$el ) antes de anexá-lo, mas caso contrário, deve funcionar.

Esta página foi útil?
0 / 5 - 0 avaliações