@vue/language-service 1.8.10 → 1.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/template/pt.json +15 -15
- package/out/languageService.js +14 -0
- package/package.json +3 -3
package/data/template/pt.json
CHANGED
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"name": "v-text",
|
|
312
312
|
"description": {
|
|
313
313
|
"kind": "markdown",
|
|
314
|
-
"value": "\nAtualiza o conteúdo de texto do elemento.\n\n- **Espera:** `string`\n\n- **Detalhes**\n\n `v-text` funciona
|
|
314
|
+
"value": "\nAtualiza o conteúdo de texto do elemento.\n\n- **Espera:** `string`\n\n- **Detalhes**\n\n `v-text` funciona definindo a propriedade [`textContent`](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) do elemento, sobrescreverá qualquer conteúdo existente dentro do elemento. Se precisarmos de atualizar a parte da `textContent`, devemos usar as [interpolações de bigodes](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation).\n\n- **Exemplo**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- é o mesmo que -->\n <span>{{msg}}</span>\n ```\n\n- **Consulte também** [Sintaxe do Modelo de Marcação - Interpolação de Texto](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n"
|
|
315
315
|
},
|
|
316
316
|
"references": [
|
|
317
317
|
{
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
"name": "v-html",
|
|
349
349
|
"description": {
|
|
350
350
|
"kind": "markdown",
|
|
351
|
-
"value": "\nAtualiza
|
|
351
|
+
"value": "\nAtualiza a [`innerHTML`](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML) do elemento.\n\n- **Espera:** `string`\n\n- **Detalhes:**\n\n Os conteúdos da `v-html` são inseridos como HTML simples - a sintaxe de modelo de marcação da Vue não será processada. Se estivermos a tentar compor modelos de marcação usando `v-html`, vamos tentar repensar a solução usando componentes.\n\n :::warning Nota de Segurança\n Interpretar dinamicamente HTML arbitrário na nossa aplicação pode ser muito perigoso porque pode facilmente conduzir à [ataques de XSS](https://en.wikipedia.org/wiki/Cross-site_scripting). Só deveríamos usar `v-html` sobre conteúdo confiável e **nunca** sobre conteúdo fornecido pelo utilizador.\n :::\n\n Nos [Componentes de Ficheiro Único](https://pt.vuejs.org/guide/scaling-up/sfc.html), os estilos `scoped` não serão aplicados ao conteúdo dentro de `v-html`, porque este HTML não é processado pelo compilador de modelos de marcação da Vue. Se quisermos mirar o conteúdo de `v-html` com CSS isolada, podemos usar os [módulos de CSS](./sfc-css-features#css-modules) ou elemento `<style>` adicional e global com uma estratégia de isolamento manual, como a BEM.\n\n- **Exemplo**\n\n ```html\n <div v-html=\"html\"></div>\n ```\n\n- **Consulte também** [Sintaxe do Modelo de Marcação - HTML Puro](https://pt.vuejs.org/guide/essentials/template-syntax.html#raw-html)\n"
|
|
352
352
|
},
|
|
353
353
|
"references": [
|
|
354
354
|
{
|
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
"name": "v-show",
|
|
386
386
|
"description": {
|
|
387
387
|
"kind": "markdown",
|
|
388
|
-
"value": "\nAlterna a visibilidade do elemento baseado na veracidade do valor da expressão.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n `v-show` funciona
|
|
388
|
+
"value": "\nAlterna a visibilidade do elemento baseado na veracidade do valor da expressão.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n `v-show` funciona definindo a propriedade de CSS `display` através de estilos em linha, e tentará respeitar o valor inicial da `display` quando o elemento estiver visível. Também aciona transições quando sua condição muda.\n\n- **Consulte também** [Interpretação Condicional - `v-show`](https://pt.vuejs.org/guide/essentials/conditional.html#v-show)\n"
|
|
389
389
|
},
|
|
390
390
|
"references": [
|
|
391
391
|
{
|
|
@@ -422,7 +422,7 @@
|
|
|
422
422
|
"name": "v-if",
|
|
423
423
|
"description": {
|
|
424
424
|
"kind": "markdown",
|
|
425
|
-
"value": "\
|
|
425
|
+
"value": "\nInterpreta condicionalmente um elemento ou um fragmento de modelo de marcação baseado na veracidade do valor da expressão.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n Quando um elemento de `v-if` é alternado, o elemento e suas diretivas ou componentes contidos são destruídos e construídos novamente. Se a condição inicial for falsa, então o conteúdo interno não será interpretado de todo.\n\n Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n Esta diretiva aciona transições quando sua condição muda.\n\n Quando usada em conjunto, a `v-if` tem uma prioridade superior à `v-for`. Não recomendados usar estas duas diretivas ao mesmo tempo sobre um elemento — consulte o [guia de interpretação de lista](https://pt.vuejs.org/guide/essentials/list.html#v-for-with-v-if) por mais detalhes.\n\n- **Consulte também** [Interpretação Condicional - `v-if`](https://pt.vuejs.org/guide/essentials/conditional.html#v-if)\n"
|
|
426
426
|
},
|
|
427
427
|
"references": [
|
|
428
428
|
{
|
|
@@ -460,7 +460,7 @@
|
|
|
460
460
|
"valueSet": "v",
|
|
461
461
|
"description": {
|
|
462
462
|
"kind": "markdown",
|
|
463
|
-
"value": "\nDenota um \"bloco else
|
|
463
|
+
"value": "\nDenota um \"bloco `else`\" para a `v-if` ou para uma cadeia `v-if` / `v-else-if`.\n\n- **Não espera expressões**\n\n- **Detalhes**\n\n - Restrição: o anterior elemento irmão deve ter a `v-if` ou `v-else-if`.\n\n - Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n- **Exemplo**\n\n ```html\n <div v-if=\"Math.random() > 0.5\">\n Now you see me\n </div>\n <div v-else>\n Now you don't\n </div>\n ```\n\n- **Consulte também** [Interpretação Condicional - `v-else`](https://pt.vuejs.org/guide/essentials/conditional.html#v-else)\n"
|
|
464
464
|
},
|
|
465
465
|
"references": [
|
|
466
466
|
{
|
|
@@ -497,7 +497,7 @@
|
|
|
497
497
|
"name": "v-else-if",
|
|
498
498
|
"description": {
|
|
499
499
|
"kind": "markdown",
|
|
500
|
-
"value": "\nDenota o \"bloco else if
|
|
500
|
+
"value": "\nDenota o \"bloco `else if`\" para a `v-if`. Pode ser encadeada.\n\n- **Espera:** `any`\n\n- **Detalhes**\n\n - Restrição: o anterior elemento irmão deve ter a `v-if` ou `v-else-if`.\n\n - Pode ser usada no `<template>` para denotar um bloco condicional contendo apenas texto ou vários elementos.\n\n- **Exemplo**\n\n ```html\n <div v-if=\"type === 'A'\">\n A\n </div>\n <div v-else-if=\"type === 'B'\">\n B\n </div>\n <div v-else-if=\"type === 'C'\">\n C\n </div>\n <div v-else>\n Not A/B/C\n </div>\n ```\n\n- **Consulte também** [Interpretação Condicional - `v-else-if`](https://pt.vuejs.org/guide/essentials/conditional.html#v-else-if)\n"
|
|
501
501
|
},
|
|
502
502
|
"references": [
|
|
503
503
|
{
|
|
@@ -534,7 +534,7 @@
|
|
|
534
534
|
"name": "v-for",
|
|
535
535
|
"description": {
|
|
536
536
|
"kind": "markdown",
|
|
537
|
-
"value": "\
|
|
537
|
+
"value": "\nInterpreta o elemento ou bloco de modelo de marcação várias vezes baseada na fonte dos dados.\n\n- **Espera:** `Array | Object | number | string | Iterable`\n\n- **Detalhes**\n\n O valor da diretiva deve usar a sintaxe especial `alias in expression` para fornecer um pseudónimo para o elemento atual a ser iterado:\n\n ```html\n <div v-for=\"item in items\">\n {{ item.text }}\n </div>\n ```\n\n Alternativamente, também podemos especificar um pseudónimo para o índice (ou a chave se usada sobre um objeto):\n\n ```html\n <div v-for=\"(item, index) in items\"></div>\n <div v-for=\"(value, key) in object\"></div>\n <div v-for=\"(value, name, index) in object\"></div>\n ```\n\n O comportamento padrão da `v-for` tentará remendar os elementos no lugar sem movê-los. Para forçar a reordenação de elementos, devemos fornecer uma sugestão de ordenação com o atributo especial `key`:\n\n ```html\n <div v-for=\"item in items\" :key=\"item.id\">\n {{ item.text }}\n </div>\n ```\n\n `v-for` também pode trabalhar com valores que implementam o [Protocolo Iterável](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol), incluindo os `Map` e `Set` nativos.\n\n- **Consulte também**\n - [Interpretação de Lista](https://pt.vuejs.org/guide/essentials/list.html)\n"
|
|
538
538
|
},
|
|
539
539
|
"references": [
|
|
540
540
|
{
|
|
@@ -571,7 +571,7 @@
|
|
|
571
571
|
"name": "v-on",
|
|
572
572
|
"description": {
|
|
573
573
|
"kind": "markdown",
|
|
574
|
-
"value": "\nAnexa um
|
|
574
|
+
"value": "\nAnexa um ouvinte de evento ao elemento.\n\n- **Atalho:** `@`\n\n- **Espera:** `Function | Inline Statement | Object (sem argumento)`\n\n- **Argumento:** `event` (opcional se estivermos usando a sintaxe de Objeto)\n\n- **Modificadores**\n\n - `.stop` - chama `event.stopPropagation()`.\n - `.prevent` - chama `event.preventDefault()`.\n - `.capture` - adiciona ouvinte de evento no modo de captura.\n - `.self` - apenas aciona o manipulador se o evento fosse despachado a partir deste elemento.\n - `.{keyAlias}` - apenas aciona o manipulador sobre certas teclas.\n - `.once` - aciona o manipulador no máximo uma vez.\n - `.left` - apenas aciona o manipulador para os eventos de rato do botão esquerdo.\n - `.right` - apenas aciona o manipulador para os eventos de rato do botão direito.\n - `.middle` - apenas aciona o manipulador para os eventos de rato do botão do meio.\n - `.passive` - anexa um evento de DOM com `{ passive: true }`.\n\n- **Detalhes**\n\n O tipo de evento é denotado pelo argumento. A expressão pode ser um nome de método, uma declaração em linha, ou omitida se existirem modificadores presentes.\n\n Quando usada num elemento normal, apenas ouve os [**eventos de DOM nativos**](https://developer.mozilla.org/en-US/docs/Web/Events). Quando usada num componente de elemento personalizado, ouve os **eventos personalizados** emitidos sobre este componente filho.\n\n Quando ouvimos os eventos de DOM nativos, o método recebe o evento nativo como único argumento. Se usarmos a declaração em linha, a declaração tem acesso à propriedade `$event` especial: `v-on:click=\"handle('ok', $event)\"`.\n\n `v-on` também suporta vínculo a um objeto de pares de evento / ouvinte sem um argumento. Nota que quando usamos a sintaxe de objeto, esta não suporta quaisquer modificadores.\n\n- **Exemplo**\n\n ```html\n <!-- manipulador de método -->\n <button v-on:click=\"doThis\"></button>\n\n <!-- evento dinâmico -->\n <button v-on:[event]=\"doThis\"></button>\n\n <!-- declaração em linha -->\n <button v-on:click=\"doThat('hello', $event)\"></button>\n\n <!-- atalho -->\n <button @click=\"doThis\"></button>\n\n <!-- atalho de evento dinâmico -->\n <button @[event]=\"doThis\"></button>\n\n <!-- parar propagação -->\n <button @click.stop=\"doThis\"></button>\n\n <!-- impedir o padrão -->\n <button @click.prevent=\"doThis\"></button>\n\n <!-- impedir o padrão sem expressão -->\n <form @submit.prevent></form>\n\n <!-- encadear modificadores -->\n <button @click.stop.prevent=\"doThis\"></button>\n\n <!-- modificador de tecla usando pseudónimo de tecla -->\n <input @keyup.enter=\"onEnter\" />\n\n <!-- o evento de clique será acionado no máximo uma vez -->\n <button v-on:click.once=\"doThis\"></button>\n\n <!-- sintaxe de objeto -->\n <button v-on=\"{ mousedown: doThis, mouseup: doThat }\"></button>\n ```\n\n Ouvindo eventos personalizados dum componente filho (o manipulador é chamado quando \"my-event\" é emitido sobre o filho):\n\n ```html\n <MyComponent @my-event=\"handleThis\" />\n\n <!-- declaração em linha -->\n <MyComponent @my-event=\"handleThis(123, $event)\" />\n ```\n\n- **Consulte também**\n - [Manipulação de Eventos](https://pt.vuejs.org/guide/essentials/event-handling.html)\n - [Componentes - Eventos Personalizados](https://pt.vuejs.org/guide/essentials/component-basics.html#listening-to-events)\n"
|
|
575
575
|
},
|
|
576
576
|
"references": [
|
|
577
577
|
{
|
|
@@ -608,7 +608,7 @@
|
|
|
608
608
|
"name": "v-bind",
|
|
609
609
|
"description": {
|
|
610
610
|
"kind": "markdown",
|
|
611
|
-
"value": "\nVincula um ou mais atributos
|
|
611
|
+
"value": "\nVincula dinamicamente um ou mais atributos, ou uma propriedade de componente à uma expressão.\n\n- **Atalho:** `:` ou `.` (quando usamos o modificador `.prop`)\n\n- **Espera:** `any (com argumento) | Object (sem argumento)`\n\n- **Argumento:** `attrOrProp (opcional)`\n\n- **Modificadores**\n\n - `.camel` - transforma o nome de atributo em caixa de espetada em caixa de camelo.\n - `.prop` - força um vínculo à ser definido como uma propriedade do DOM. <sup class=\"vt-badge\">3.2+</sup>\n - `.attr` - força um vínculo à ser definido como um atributo de DOM. <sup class=\"vt-badge\">3.2+</sup>\n\n- **Uso**\n\n Quando usada para vincular o atributo `class` ou `style`, `v-bind` suporta tipos de valores adicionar como Vetor ou Objeto. Consulte a seção do guia ligado abaixo por mais detalhes.\n\n Quando definimos um vínculo num elemento, a Vue por padrão verifica se o elemento tem a chave definida como uma propriedade usando uma verificação do operador `in`. Se a propriedade for definida, a Vue definirá o valor como uma propriedade de DOM ao invés dum atributo. Isto deve funciona na maioria dos casos, mas podemos sobrepor este comportamento ao usar explicitamente os modificadores `.prop` ou `.attr`. Isto é algumas vezes necessário, especialmente quando [trabalhamos com elementos personalizados](https://pt.vuejs.org/guide/extras/web-components.html#passing-dom-properties).\n\n Quando usada para vínculos de propriedade de componente, a propriedade deve ser declarada apropriadamente no componente filho.\n\n Quando usada sem um argumento, pode ser usada para vincular um objeto contendo pares de nome-valor de atributo.\n\n- **Exemplo**\n\n ```html\n <!-- vincular um atributo -->\n <img v-bind:src=\"imageSrc\" />\n\n <!-- nome de atributo dinâmico -->\n <button v-bind:[key]=\"value\"></button>\n\n <!-- atalho -->\n <img :src=\"imageSrc\" />\n\n <!-- atalho de nome de atributo dinâmico -->\n <button :[key]=\"value\"></button>\n\n <!-- com concatenação de sequência de caracteres em linha -->\n <img :src=\"'/path/to/images/' + fileName\" />\n\n <!-- vínculos de classe -->\n <div :class=\"{ red: isRed }\"></div>\n <div :class=\"[classA, classB]\"></div>\n <div :class=\"[classA, { classB: isB, classC: isC }]\"></div>\n\n <!-- vínculos de estilo -->\n <div :style=\"{ fontSize: size + 'px' }\"></div>\n <div :style=\"[styleObjectA, styleObjectB]\"></div>\n\n <!-- vincular um objeto de atributos -->\n <div v-bind=\"{ id: someProp, 'other-attr': otherProp }\"></div>\n\n <!-- vincular propriedades. \"prop\" deve ser declarada no componente filho. -->\n <MyComponent :prop=\"someThing\" />\n\n <!-- passar as propriedades do pai em comum com um componente filho -->\n <MyComponent v-bind=\"$props\" />\n\n <!-- XLink -->\n <svg><a :xlink:special=\"foo\"></a></svg>\n ```\n\n O modificador `.prop` também tem um atalho dedicado `.`:\n\n ```html\n <div :someProperty.prop=\"someObject\"></div>\n\n <!-- equivalente a -->\n <div .someProperty=\"someObject\"></div>\n ```\n\n O modificador `.camel` permite a camelização dum nome de atributo de `v-bind` quando usamos modelos de marcação no DOM, por exemplo o atributo `viewBox` de SVG:\n\n ```html\n <svg :view-box.camel=\"viewBox\"></svg>\n ```\n\n `.camel` não é necessário se estivermos a usar modelos de marcação de sequência de caracteres, pré-compilar o modelo de marcação com uma etapa de construção.\n\n- **Consulte também**\n - [Vínculos de Classe e Estilo](https://pt.vuejs.org/guide/essentials/class-and-style.html)\n - [Componentes - Detalhes da Passagem de Propriedade](https://pt.vuejs.org/guide/components/props.html#prop-passing-details)\n"
|
|
612
612
|
},
|
|
613
613
|
"references": [
|
|
614
614
|
{
|
|
@@ -645,7 +645,7 @@
|
|
|
645
645
|
"name": "v-model",
|
|
646
646
|
"description": {
|
|
647
647
|
"kind": "markdown",
|
|
648
|
-
"value": "\nCria
|
|
648
|
+
"value": "\nCria um vínculo bidirecional num elemento de entrada de formulário ou um componente.\n\n- **Espera:** variar baseado no valor do elemento de entradas de formulário ou na saída de componentes\n\n- **Limitado a:**\n\n - `<input>`\n - `<select>`\n - `<textarea>`\n - componentes\n\n- **Modificadores**\n\n - [`.lazy`](https://pt.vuejs.org/guide/essentials/forms.html#lazy) - ouve os eventos de `change` ao invés de `input`\n - [`.number`](https://pt.vuejs.org/guide/essentials/forms.html#number) - converte uma sequência de caracteres de entrada válida em números.\n - [`.trim`](https://pt.vuejs.org/guide/essentials/forms.html#trim) - apara a entrada\n\n- **Consulte também**\n\n - [Vínculos de Entrada de Formulário](https://pt.vuejs.org/guide/essentials/forms.html)\n - [Eventos de Componente - Uso com `v-model`](https://pt.vuejs.org/guide/components/v-model.html)\n"
|
|
649
649
|
},
|
|
650
650
|
"references": [
|
|
651
651
|
{
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
"name": "v-slot",
|
|
683
683
|
"description": {
|
|
684
684
|
"kind": "markdown",
|
|
685
|
-
"value": "\nDenota
|
|
685
|
+
"value": "\nDenota ranhuras nomeadas ou ranhuras isoladas que esperam receber propriedades.\n\n- **Atalho:** `#`\n\n- **Espera:** expressão de JavaScript que é válido numa posição de argumento de função, incluindo suporte para desestruturação. Opcional - apenas necessário se esperamos propriedades serem passadas para a ranhura.\n\n- **Argumento:** nome da ranhura (opcional, predefinido para `default`)\n\n- **Limitado a:**\n\n - `<template>`\n - [componentes](https://pt.vuejs.org/guide/components/slots.html#scoped-slots) (para única ranhura padrão com propriedades)\n\n- **Exemplo**\n\n ```html\n <!-- Ranhuras nomeadas -->\n <BaseLayout>\n <template v-slot:header>\n Header content\n </template>\n\n <template v-slot:default>\n Default slot content\n </template>\n\n <template v-slot:footer>\n Footer content\n </template>\n </BaseLayout>\n\n <!-- Ranhura nomeada que recebe propriedades -->\n <InfiniteScroll>\n <template v-slot:item=\"slotProps\">\n <div class=\"item\">\n {{ slotProps.item.text }}\n </div>\n </template>\n </InfiniteScroll>\n\n <!-- Ranhura padrão que recebe propriedades, com desestruturação -->\n <Mouse v-slot=\"{ x, y }\">\n Mouse position: {{ x }}, {{ y }}\n </Mouse>\n ```\n\n- **Consulte também**\n - [Componentes - Ranhuras](https://pt.vuejs.org/guide/components/slots.html)\n"
|
|
686
686
|
},
|
|
687
687
|
"references": [
|
|
688
688
|
{
|
|
@@ -719,7 +719,7 @@
|
|
|
719
719
|
"name": "v-pre",
|
|
720
720
|
"description": {
|
|
721
721
|
"kind": "markdown",
|
|
722
|
-
"value": "\
|
|
722
|
+
"value": "\nIgnora a compilação para este elemento e todos os seus filhos.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n Dentro do elemento com `v-pre`, toda a sintaxe de modelo de marcação da Vue será preservada e desenhada como está. O caso de uso mais comum disto é a exibição de marcadores de bigodes puros.\n\n- **Exemplo**\n\n ```html\n <span v-pre>{{ this will not be compiled }}</span>\n ```\n"
|
|
723
723
|
},
|
|
724
724
|
"references": [
|
|
725
725
|
{
|
|
@@ -756,7 +756,7 @@
|
|
|
756
756
|
"name": "v-once",
|
|
757
757
|
"description": {
|
|
758
758
|
"kind": "markdown",
|
|
759
|
-
"value": "\
|
|
759
|
+
"value": "\nDesenha o elemento e o componente apenas uma vez, e ignora as futuras atualizações.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n Nos redesenhos subsequentes, o elemento ou componente e todos os seus filhos serão tratados como conteúdo estático e ignorados. Isto pode ser usado para otimizar o desempenho da atualização.\n\n ```html\n <!-- elemento único -->\n <span v-once>This will never change: {{msg}}</span>\n <!-- o elemento tem filhos -->\n <div v-once>\n <h1>comment</h1>\n <p>{{msg}}</p>\n </div>\n <!-- componente -->\n <MyComponent v-once :comment=\"msg\"></MyComponent>\n <!-- diretiva `v-for` -->\n <ul>\n <li v-for=\"i in list\" v-once>{{i}}</li>\n </ul>\n ```\n\n Desde a 3.2, também podemos memorizar parte do modelo de marcação com condições de invalidação usando a [`v-memo`](#v-memo).\n\n- **Consulte também**\n - [Sintaxe de Vínculo de Dados - Interpolações](https://pt.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)\n - [`v-memo`](#v-memo)\n"
|
|
760
760
|
},
|
|
761
761
|
"references": [
|
|
762
762
|
{
|
|
@@ -793,7 +793,7 @@
|
|
|
793
793
|
"name": "v-memo",
|
|
794
794
|
"description": {
|
|
795
795
|
"kind": "markdown",
|
|
796
|
-
"value": "\n- **Espera:** `any[]`\n\n- **Detalhes**\n\n
|
|
796
|
+
"value": "\n- **Espera:** `any[]`\n\n- **Detalhes**\n\n Memoriza uma sub-árvore do modelo de marcação. Pode ser usada em ambos elementos e componentes. A diretiva espera um vetor de valores de dependência de comprimento fixo à comparar para a memorização. Se todos os valores no vetor fossem os mesmos que os da última interpretação, então as atualizações para a sub-árvore inteira serão ignoradas. Por exemplo:\n\n ```html\n <div v-memo=\"[valueA, valueB]\">\n ...\n </div>\n ```\n\n Quando o componente redesenha-se, se ambos `valueA` e `valueB` continuarem os mesmos, todas as atualizações para este `<div>` e seus filhos serão ignoradas. De fato, mesmo a criação nó virtual do DOM virtual também será ignorada uma vez que a cópia memorizada da sub-árvore pode ser usada novamente.\n\n É importante especificar o vetor de memorização corretamente, de outro modo podemos ignorar atualizações que deveriam de fato ser aplicadas. `v-memo` com um vetor de dependência vazio (`v-memo=\"[]\"`) seria funcionalmente equivalente à `v-once`.\n\n **Uso com `v-for`**\n\n `v-memo` é fornecida exclusivamente para micro otimizações em cenários de desempenho crítico e deveriam ser raramente necessários. O caso de uso mais comum onde isto pode ser útil é quando desenhamos grandes listas `v-for` (onde `length > 1000`):\n\n ```html\n <div v-for=\"item in list\" :key=\"item.id\" v-memo=\"[item.id === selected]\">\n <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>\n <p>...more child nodes</p>\n </div>\n ```\n\n Quando o estado `selected` do componente mudar, será criada uma grande quantidade de nós virtuais, embora a maioria dos itens permaneça exatamente igual. O uso de `v-memo` neste contexto está essencialmente a dizer \"apenas atualize este item se tiver passado de não selecionado para selecionado, ou o contrário\". Isto permite que todos os itens não afetados reusarem seus anteriores nós virtuais e ignorar a diferenciação inteiramente. Nota que não precisamos incluir `item.id` no vetor de dependência da `v-memo` neste contexto, uma vez que a Vue atualmente a infere a partir da `:key` do item.\n\n :::warning AVISO\n Quando usamos a `v-memo` com a `v-for`, devemos certificar-nos que são usados no mesmo elemento. **`v-memo` não funciona dentro da `v-for`**.\n :::\n\n `v-memo` também pode ser usada nos componentes para manualmente impedir atualizações indesejadas em certos casos extremos onde a verificação da atualização do componente filho não foi otimizado. Mas novamente, é responsabilidade do programador especificar os vetores de dependência correta para evitar ignorar atualizações necessárias.\n\n- **Consulte também**\n - [`v-once`](#v-once)\n"
|
|
797
797
|
},
|
|
798
798
|
"references": [
|
|
799
799
|
{
|
|
@@ -830,7 +830,7 @@
|
|
|
830
830
|
"name": "v-cloak",
|
|
831
831
|
"description": {
|
|
832
832
|
"kind": "markdown",
|
|
833
|
-
"value": "\
|
|
833
|
+
"value": "\nUsada para esconder o modelo de marcação que ainda não foi compilado até que estiver pronto.\n\n- **Não espera expressão**\n\n- **Detalhes**\n\n **Esta diretiva apenas é necessária nas configurações sem etapa de construção.**\n\n Quando usamos os modelos de marcação no DOM, pode existir um \"piscar de modelos de marcação não compilados\": o utilizador pode ver os marcadores de bigodes puros até o componente montado substituí-los com componente desenhado.\n\n `v-cloak` permanecerá no elemento até que a instância do componente associado for montada. Combinada com as regras de CSS como `[v-cloak] { display: none }`, pode ser usada para esconder os modelos de marcação puros até o componente estiver pronto.\n\n- **Exemplo**\n\n ```css\n [v-cloak] {\n display: none;\n }\n ```\n\n ```html\n <div v-cloak>\n {{ message }}\n </div>\n ```\n\n O `<div>` não será visível até que a compilação estiver concluída.\n"
|
|
834
834
|
},
|
|
835
835
|
"references": [
|
|
836
836
|
{
|
package/out/languageService.js
CHANGED
|
@@ -186,6 +186,20 @@ function resolvePlugins(services, vueCompilerOptions) {
|
|
|
186
186
|
}
|
|
187
187
|
return result;
|
|
188
188
|
},
|
|
189
|
+
async provideSemanticDiagnostics(document, token) {
|
|
190
|
+
const result = await base.provideSemanticDiagnostics?.(document, token);
|
|
191
|
+
return result?.map(diagnostic => {
|
|
192
|
+
const text = document.getText(diagnostic.range);
|
|
193
|
+
if (diagnostic.source === 'ts'
|
|
194
|
+
&& diagnostic.code === 2578 /* Unused '@ts-expect-error' directive. */
|
|
195
|
+
&& text === '// @ts-expect-error __VLS_TS_EXPECT_ERROR') {
|
|
196
|
+
diagnostic.source = 'vue';
|
|
197
|
+
diagnostic.code = 'ts-2578';
|
|
198
|
+
diagnostic.message = diagnostic.message.replace(/@ts-expect-error/g, '@vue-expect-error');
|
|
199
|
+
}
|
|
200
|
+
return diagnostic;
|
|
201
|
+
});
|
|
202
|
+
},
|
|
189
203
|
};
|
|
190
204
|
};
|
|
191
205
|
services.html ??= VueTemplateLanguageService.create({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-service",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.11",
|
|
4
4
|
"main": "out/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@volar/language-service": "~1.10.0",
|
|
22
22
|
"@volar/typescript": "~1.10.0",
|
|
23
23
|
"@vue/compiler-dom": "^3.3.0",
|
|
24
|
-
"@vue/language-core": "1.8.
|
|
24
|
+
"@vue/language-core": "1.8.11",
|
|
25
25
|
"@vue/reactivity": "^3.3.0",
|
|
26
26
|
"@vue/shared": "^3.3.0",
|
|
27
27
|
"volar-service-css": "0.0.13",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"vscode-languageserver-protocol": "^3.17.3",
|
|
41
41
|
"vscode-uri": "^3.0.7"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "cce193dcc182aad5d02f630fa3ae8a793d443680"
|
|
44
44
|
}
|