Vue: Permitir a definição de dependência de injeção opcional com valores padrão

Criado em 13 jul. 2017  ·  3Comentários  ·  Fonte: vuejs/vue

Qual problema esse recurso resolve?

No caso de componentes que podem funcionar tanto como autônomos quanto como filhos, seria bom poder fornecer valores padrão para as dependências não fornecidas.
Isso também evitaria o aviso de injeção ausente, caso esse seja um dos casos de uso esperados.

Qual é a aparência da API proposta?

injetar: Array| {[chave: string]: string | Símbolo | {nome: string | Símbolo, padrão: qualquer}}

feature request in review

Comentários muito úteis

Estou trabalhando em uma biblioteca de componentes que utiliza fornecer e injetar para que certos componentes se comportem / tenham uma aparência ligeiramente diferente quando no contexto de outro componente da biblioteca. Como nossos componentes são usados ​​por outros engenheiros para desenvolvimento, avisos de que a injeção não foi encontrada continuam aparecendo em seu ambiente.

Adoraria que esse recurso fosse implementado. E para adicionar a isso, conforme mencionado em https://github.com/vuejs/vue/issues/6137 , gostaria de ver um atributo required para indicar se uma injeção é necessária ou opcional.

Todos 3 comentários

Idem neste pedido. O que normalmente me vejo fazendo é substituir a propriedade injetada como dados para fornecer um padrão:

inject: [
  'foo'
],
data () {
  return {
    foo: this.foo || 'default'
  }
}

Também sou +1 para este recurso. Atualmente, tenho componentes aninhados uns nos outros e os pais fornecem informações aos filhos. O aviso sempre aparece para o componente raiz, pois ele não tem um provedor para a propriedade injetada.

Caso de uso específico: divisores de layout aninhados.

Estou trabalhando em uma biblioteca de componentes que utiliza fornecer e injetar para que certos componentes se comportem / tenham uma aparência ligeiramente diferente quando no contexto de outro componente da biblioteca. Como nossos componentes são usados ​​por outros engenheiros para desenvolvimento, avisos de que a injeção não foi encontrada continuam aparecendo em seu ambiente.

Adoraria que esse recurso fosse implementado. E para adicionar a isso, conforme mencionado em https://github.com/vuejs/vue/issues/6137 , gostaria de ver um atributo required para indicar se uma injeção é necessária ou opcional.

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