Angular, React, Vue and Others
Students will work in groups to create a Wiki comparing major client-side JavaScript frameworks: Angular, React, Vue and Others. If you did not work before with Moodle Wikis, see this small video (3:36 min.) on the Wiki activity page.
Vue 1.3
(Restaurar esta versão)
Modificado: 27 maio 2022, 09:38 AM Usuário: Guilherme Lourenco de Toledo → GL
WEB Group Discussion - VUE
![1*OrjCKmou1jT4It5so5gvOA.jpeg](https://miro.medium.com/max/900/1*OrjCKmou1jT4It5so5gvOA.jpeg)
Students List
- Adrio Oliveira Alves (11796830)
- Bernardo Marques Costa (11795551)
- Guilherme Lourenço de Toledo (11795811)
- Pedro Augusto Ribeiro Gomes (11819125)
- Thales Darini Souza (10747562)
- João Pedro Rodrigues Freitas (11316552)
- Natan Henrique Sanches (11795680)
- Marcus Vinícius Teixeira Huziwara (11834432)
- Vinicius Santos Monteiro (11932463)
- João Victor Sene Araújo (11796382)
- Paulo Henrique de Souza Soares (11884713)
- Gabriel da Cunha Dertoni (11795717)
Main Framework Features
- Virtual DOM: O virtual DOM é um conceito presente em outros frameworks, como o react. Ele é um padrão de programação que permite que armazenemos - em memória - uma representação ideal da UI, que é sincronizada com o DOM real. Ou seja, não fazemos alterações diretamente no DOM, ao invés disso, temos um ambiente virtual em memória composto por estruturas de dados em JS, e as modificações feitas nele são , posteriormente, adicionadas ao DOM real. Essa feature concede ao desenvolvedor a capacidade de desenvolver a UI de maneira declarativa, deixando a manipulação do DOM para o renderizador, fazendo com que o processo seja mais eficiente, já que as mudanças podem ser feitas de forma mais rápida, e também é vantajoso em termos de otimização.
- Data Binding: O VUE permite, a partir de uma diretiva chamada v-bind, a manipulação ou atribuição de valores aos atributos HTML, mudança de estilos e atribuição de classes, sem que seja necessário acessar o documento HTML diretamente.
- Components: Característica de programação que permite criar elementos de código customizados em HTML. As bibliotecas do VUE facilitam a reutilização desses componentes, melhoram a produtividade do desenvolvedor e agilizam o processo de desenvolvimento.
- Event Handling: O framework fornece o atributo v-on, que é adicionado aos elementos do DOM para escutar eventos.
- Animation/Transition: O framework providencia várias formas de aplicar transições em elementos HTML quando eles são adicionados, alterados ou removidos do DOM. O VUE possui componentes de transição prontos, permitindo que sejam aplicados em torno dos elementos para realizar efeitos de transição.
- Computed Properties É uma das mais importantes features do VUE. Ela é a principal maneira que o framework fornece de converter código imperativo em código declarativo, o que é mais vantajoso. Uma computed property é uma propriedade que possui seu valor atualizado sob demanda por uma função pura . É uma função memoizada, ou seja, ela é chamada uma vez e só é recalculada quando suas dependências mudam. Sendo assim, ela ajuda a tornar o código mais eficiente. Torna também a programação mais fácil, já que o programador pode usar o valor da computed property sabendo que ele será atualizado quando necessário (quando suas dependências forem atualizadas).
Framework Advantages
Vue.js possui múltiplas vantagens em relação a outros frameworks, veremos a seguir as vantagens:
- Requer poucos recursos computacionais: Vue.js é um framework leve comparado a outros, sendo possível rodar em qualquer máquina para qualquer nível de aplicação, desde pequenos projetos pessoais até aplicações multifuncionais.
- Simplicidade: Diferente de outros frameworks, Vue.js facilita o processo de desenvolvimento. A aplicação não fica mais pesada devido ao aumento de código. Isso ocorre porquê todos os métodos de Vue.js são separados um do outro, o que permite um controle de processo e entendimento de código maior. Além disso, é uma excelente escolha para iniciantes, dado que sua documentação é bastante compreensiva e provê uma completa descrição de todo o framework para desenvolvedores.
- Reutilizável: Vue.js consegue ser reutilizável, pois possui uma biblioteca UI que possui diverrsos componentes feitos a mão por outros desenvolvedores. Esses componentes podem ser utilizados por qualquer desenvolvedor em diferentes aplicações.
- Segregação: Diferente de outros frameworks, o Vue.js utiliza um DOM virtual. O ponto é que o Virtual DOM provê uma melhor interface ao desenvolvedor sem a necessidade de renderizar o real DOM caso ocorram alterações na aplicação.
- Compatibilidade: O Vue.js permite que o desenvolvedor faça templates da forma desejada em HTML, JSX e JS. Isso permite uma fácil utilização desses recursos em outros frameworks.
Framework Disadvantages
Veremos a seguir as desvantagens do framework:
- Barreira de linguagem: A adoção do Vue por empresas como Xiaomi e Alibaba ajudaram a popularizar esse framework, gerando uma demanda de profissionais qualificados para utilizá-lo. Assim, não surpreendentemente, uma parte significativa dos conteúdos e discussões estão em chinês.
Desse modo, em uma busca por conteúdos acerca do Vue será comum encontrar discussões, instruções e descrições de plugins em chinês, o que pode ser um problema para aqueles que não compreendem essa língua.
- Complexidade de reatividade: Uma das características do sistema de reatividade é o two-way data binding que auxilia na sincronização dos componentes. Entretanto, este sistema geralmente comete erros durante a leitura dos dados fazendo-se necessário “achatar” os dados para contornar este problema.
- Falta de suporte para projetos de larga escala: Vue é uma framework mais recente e sua comunidade e equipe de desenvolvimento é comparativamente menor que frameworks mais disseminadas como Angular. Além disso, ela não é financiada por grandes empresas. Isso faz com que ainda não seja muito usada para projetos de larga escala que requerem uma tecnologia estável com suporte e assistência mais imediatos na resolução de problemas. Dessa forma, Vue é mais utilizado em projetos menores como single page applications.
- Risco de excesso de flexibilidade: O Vue.js possui grande flexibilidade pois depende apenas de JavaScript, não exigindo nenhuma outra ferramenta para operar. Assim, possui grande integração entre aplicações já existentes.
Neste sentido, o excesso de flexibilidade é uma qualidade controversa em termos de grandes projetos, pois fornecer diversas opções a um time de desenvolvimento pode resultar em diferentes abordagens de programação conflitando dentro de um time. E, como resultado, pode prejudicar o projeto como um todo.
- Recursos limitados: Comparado com Angular e React, Vue possui muito menos plugins e recursos implementados. Alguns plugins comumente usados por outras frameworks também não são suportados pelo Vue. Embora isto possa ser apenas uma questão de tempo, é algo a ser considerado pelos desenvolvedores.
- Falta de desenvolvedores experientes: Como o Vue é um framework relativamente novo e que ainda está se popularizando, então é necessário esperar alguns anos até que o mercado de trabalho em relação a esse framework seja preenchido com desenvolvedores experientes em Vue.js.
Main Application Niches
Como temos as principais vantagens do Vue contra outros frameworks (como Angular e React) sendo a facilidade do aprendizado e leve, os nichos em que o Vue segue ganhando espaço, e dominando, são:
- Inicialização de novos projetos, em que os desenvolvedores não estão ainda familiarizados ou especializados em um framework específico. Isso acontece em grandes e pequenas empresas na indústria, quando temos desenvolvedores Juniors, que demandam um processo de aprendizagem e mentorias/acompanhamento, o Vue se sobressai como framework de escolha, devido a sua curva de aprendizado.
- A facilidade e praticidade, faz com que muitos projetos sejam adaptados e sofram manutenções por meio deste framework.
- O Vue se sobressai, quando projetos devem sofrer deploy em um curto período de tempo, tanto em médias quanto pequenas empresas. Isso pois, como é mais intuitivo e prático para desenvolvedores, poupa custo de desenvolvimento e cumpre os objetivos de negócio rapidamente.
- O Vue possui grande espaço em Progressive Web Apps (PWAs) - que corresponde a criação de aplicativos web com interatividade semelhantes a aplicações nativas, mas sem a necessidade de desenvolvimento neste viés. Com isso, temos a vantagem de que a aplicação seja acessível em qualquer plataforma/navegador web. Um exemplo de PWA em que o Vue é grande influente é de projetos relacionados a e-commerce, como o AliExpress.
Future Perspectives
O futuro do Vue depende do suporte da comunidade para migração de bibliotecas de Vue 2 para Vue 3, visto que, não necessariamente são compatíveis entre si. Atualmente, bibliotecas relevantes como NUXT (server side rendering), Quasar (framework para construção de websites e aplicativos de modo modular) e Vuetify (Material UI para Vue) estão sendo importadas da Vue 2 para Vue 3, o que indica progresso para este critério de sucesso para o framework. No momento, a comunidade responsável pelo desenvolvimento do Vue tem como foco estabilizar e polir a recém lançada versão Vue 3, e não possui planos publicados para novas funcionalidades.