Knockout: VS: destaque de sistema

Criado em 19 nov. 2017  ·  8Comentários  ·  Fonte: knockout/knockout

Em primeiro lugar, sei que isso é mais adequado para stackoverflow, mas já vi perguntas semelhantes sem resposta (incluindo a minha própria de cca 2 anos antes)

O que preciso fazer para habilitar o destaque de sintaxe no Visual Studio 2017 trabalhando com Razor cshtml?

Não importa o quanto eu tentei, o atributo data-bind não recebe nenhum destaque especial, dificultando o trabalho com modelos maiores

Comentários muito úteis

A falta de recursos completos de código é algo que deveria ser melhor, embora eu não tenha tido esse problema desde que não uso esse editor. Mas a premissa de que JSX permite testes de unidade que seriam de outra forma "impossibilidade de fazer ótimos testes de unidade", acho que você está sofrendo de fanboiismo do JSX se você acha que JSX é a única maneira de fazer 'ótimos testes de unidade'. Acho que este repo e o repo TKO fizeram um trabalho incrível com o gerenciamento de seus casos de teste.

Estou surpreso que você não veja os observáveis ​​e o rastreamento de dependência como um dos grandes recursos do knockout. E também como ele é facilmente modificado por plug-ins externos: a base de código não precisou de grandes atualizações porque foi construída para durar, mas novos recursos são desenvolvidos fora da comunidade todos os dias devido ao quão extensível é. Lamento alimentar o troll aqui (e mesmo depois de sequestrar o tópico), mas dizer que não há um único recurso no nocaute que o torne um 'must have' é simplesmente falso.

Todos 8 comentários

depois de trabalhar algumas semanas com o knockout, eu diria primeiro: não use o knockout em 2018. ^^ Mas para realçar a sintaxe em projetos antigos, pode haver uma opção. Eu não uso o VS, mas deve haver uma opção semelhante ao que existe no webstorm. Lá é chamado de "injeção de linguagem" que permite prefixar o atributo xml data-bind e params com window["dummy_var"] = { e sufixo-lo com } .

Mas isso não corrigirá a falta de recursos de auto-completar de código e a impossibilidade de fazer ótimos testes de unidade. ^^

Na verdade, nunca tive o realce de código para funcionar no Visual Studio, pelo menos desde 2015. Suspeito que o recurso foi removido silenciosamente, especialmente desde que eles introduziram o novo serviço de linguagem Javascript baseado no compilador Typescript. Acho que você terá que conviver com isso.

depois de trabalhar algumas semanas com o nocaute, eu diria primeiro: não use o nocaute em 2018.

Por quê? Porque não é tão quente quanto React?

porque "a falta de recursos de auto-completar de código e a impossibilidade de fazer ótimos testes de unidade." O Template System quebra tudo. E sim, depois de usar JSX por alguns meses, tenho certeza de que é a solução muito melhor do que html com tags adicionais que fazem carne mágica mística em segundo plano. ^^ E existem alguns recursos que estão faltando totalmente, como SSR, HMR.

Não entendo por que tantas pessoas com experiência em M $ .net acham que esse framework é uma boa solução em 2018. Não vi um único recurso que torne o knockout obrigatório. ^^

Mas quem se importa. apenas diga '^^

A falta de recursos completos de código é algo que deveria ser melhor, embora eu não tenha tido esse problema desde que não uso esse editor. Mas a premissa de que JSX permite testes de unidade que seriam de outra forma "impossibilidade de fazer ótimos testes de unidade", acho que você está sofrendo de fanboiismo do JSX se você acha que JSX é a única maneira de fazer 'ótimos testes de unidade'. Acho que este repo e o repo TKO fizeram um trabalho incrível com o gerenciamento de seus casos de teste.

Estou surpreso que você não veja os observáveis ​​e o rastreamento de dependência como um dos grandes recursos do knockout. E também como ele é facilmente modificado por plug-ins externos: a base de código não precisou de grandes atualizações porque foi construída para durar, mas novos recursos são desenvolvidos fora da comunidade todos os dias devido ao quão extensível é. Lamento alimentar o troll aqui (e mesmo depois de sequestrar o tópico), mas dizer que não há um único recurso no nocaute que o torne um 'must have' é simplesmente falso.

a falta de recursos de auto-completar de código

Isso é lamentável, mas não é culpa de Knockout. A possível solução alternativa inclui a declaração de ligações no código-fonte. Mas já que você sugere o uso de Javascript simples, não acho que você se preocupe muito com um bom preenchimento de código de qualquer maneira.

Posso imaginar que um JSX como a vinculação para modelos de visualização também não seja impossível de desenvolver, o que ofereceria o preenchimento de código mais facilmente.

a impossibilidade de fazer ótimos testes de unidade
Eu diria que você pode testar a unidade de projetos ko.js melhor porque você pode separar a visualização do modelo de visualização e testar o modelo de visualização individualmente como uma coleção de propriedades de entrada / saída simples.

E existem alguns recursos que estão totalmente ausentes, como SSR, HMR

HMR é trivial para embutir em um Knockout SPA, veja um dos meus projetos como exemplo. SSR está sendo trabalhado para tko IIRC.

html com atributos de tags adicionais que fazem a carne mágica mística em segundo plano

Bem, JSX não é tags não HTML completas, que fazem muita mágica em segundo plano?

Eu tentei por um curto período de tempo e descobri que não é uma tarefa ez para fazer. E se o fizéssemos, o esforço para refatorar todo o projeto seria o mesmo que mudar para o ecossistema de reação.

bem, JSX é Javascript. Em vez de transformar HTML em Javascript e, em seguida, renderizar de volta em HTML, ou para manipular a árvore DOM com jquery, JSX só precisa ser renderizado (não 100% verdadeiro, mas principalmente). Eu gosto de como posso brincar com objetos JSX dentro de testes de unidade.

Vou dar uma olhada em suas fontes para HMR. Obrigado pela dica :)

Alguma atualização para o realce do barbeador e intellisense do VS 2017?

Pelo que entendi, o vs 2017 muda a forma como o intellinse funciona a partir do
/// estilo de usar definições de texto datilografado do que li aqui .

Parece que quando você habilita os novos serviços de linguagem JavaScript no vs 2017, desabilita o intellisense nos atributos de ligação de dados em arquivos html. Você deve reiniciar o VS para que as alterações tenham efeito.

NO ENTANTO: em duas máquinas diferentes, quando eu desabilitei o novo serviço de linguagem javascript, o editor de html lançava um erro quando eu tentava editar um atributo data-bind.

Como alternativa, você pode usar o código VS para knockout intellisense https://stackoverflow.com/questions/41636473/html-knockoutjs-intellisense-in-visual-studio-code

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