enquanto fazia parte do time de desenvolvimento do Angular.JS; • Motivado em reduzir o problema de performance causado pelo two-way data binding; • Em Fevereiro de 2014 era lançada a primeira release oficial;
totalmente em um projeto: ◦ Script importado via cdn ou; ◦ Uso de bibliotecas de seu ecossistema; • Reativo: Capacidade de observar um objeto javascript e suas alterações refletirem no DOM HTML; • Componentes: Cada parte de um sistema tem seus próprios estilos e comportamentos, sendo customizada a comunicação entre eles.
de uma forma, sendo elas: ◦ Utilizando a biblioteca diretamente do CDN; <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> ◦ Com o comando npm install; $ npm install vue ◦ Utiliza sua CLI oficial Vue CLI $ npm install -g vue-cli • vue create [project-name]
from 'vue'; import App from './App.vue'; import VueRouter from 'vue-router'; import routes from './routes'; Vue.config.productionTip = false; Vue.use(VueRouter); const router = new VueRouter({routes}); new Vue({ router, render: h => h(App) }).$mount('#app');
todos níveis de estado; • Mutations: Única forma de manipular os dados, chamados da forma; • Actions: Chama as mutations e pode ser utilizado de forma assíncrona; • Getters: Recebem state como primeiro argumento, funções comuns de manipulação de estado da aplicação.
commit de mutations invés de mudança de estado; • Necessário quando uma modificação reflete em mais de um atributo de estado. const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }, actions: { increment (context) { context.commit('increment') } } })
de especificações ECMA5 com Babel; • Permite utilização de pré compiladores css, como sass; • O componente pode pode possuir estilos somente em seu próprio escopo.
do Vue para criação de aplicações; • Não é necessário ejetar para conseguir customizar, já vem com um conjunto de configurações pré-definidas; • Possui opções de de testes unitários com Mocha ou Jest por padrão.