├── .editorconfig ├── .github └── workflows │ └── action.yml ├── .gitignore ├── LICENSE ├── README.md ├── REFERENCES.md ├── assets ├── Conceitos │ ├── Diretivas │ │ └── vfor1.png │ ├── LifeCycleHooks │ │ └── lifecyclehooks.png │ └── Transições │ │ └── simple_transition.png ├── Iniciando com Vue │ ├── Componentização │ │ └── componentization.png │ └── VueCLI │ │ ├── vuecreate.png │ │ ├── vuelocalhost.png │ │ └── vueproject.png ├── Next │ └── Vuetelemetry │ │ └── util.png ├── Testes e Storybook │ ├── Cypress no Vue │ │ ├── e2e-tests.png │ │ └── e2e.png │ └── Storybook │ │ └── storybook.png ├── Vue Router │ ├── Iniciando com Vue Router │ │ └── router-structure.png │ ├── Navegação │ │ └── login-page.png │ └── Rotas Filhas │ │ └── dashboard-home.png ├── Vuetify │ ├── Componentes │ │ ├── component_header_final.png │ │ ├── component_header_location.png │ │ └── project_landing_page.png │ ├── O que e Vuetify │ │ ├── create_project_dependencies.png │ │ ├── create_project_details.png │ │ ├── create_project_features.png │ │ ├── create_project_preset.png │ │ ├── project_dashboard.png │ │ ├── project_helloworld.png │ │ ├── project_plugin.png │ │ ├── project_vue_cli.png │ │ └── project_vuetify.png │ └── he4rt-logo.png ├── Vuex │ └── Gerenciamento de Estado │ │ ├── vuex.png │ │ └── vuex_structure.png ├── he4rt.svg └── vue2.png ├── docs ├── .vuepress │ ├── config.js │ └── public │ │ └── favicon.ico ├── README.md └── tutorial │ ├── 1-Iniciando com Vue │ ├── 0-Antes de começar.md │ ├── 1-O que e Vue.md │ ├── 2-VueCLI.md │ ├── 3-Estrutura do Projeto.md │ ├── 4-Fluxo e Props.md │ └── 5-Componentização.md │ ├── 2-Conceitos │ ├── 1-Data, Methods e Modificadores.md │ ├── 10-Mixins.md │ ├── 11-Pre-Processadores.md │ ├── 12-SCSS.md │ ├── 13-SCSS-Avançado.md │ ├── 14-Considerações.md │ ├── 2-Diretivas.md │ ├── 3-Computed e Watch.md │ ├── 4-CSS.md │ ├── 5-Instância Vue.md │ ├── 6-LifeCycleHooks.md │ ├── 7-BusEvent.md │ ├── 8-Transições.md │ └── 9-Keep Alive.md │ ├── 3-Vuetify │ ├── 1-Iniciando com Vuetify.md │ ├── 2-Criando Componentes.md │ ├── 3-Customização.md │ └── 4-Considerações.md │ ├── 4-Vue Router │ ├── 1-Iniciando com Vue Router.md │ ├── 2-Navegação.md │ ├── 3-Rotas Filhas.md │ ├── 4-Guardas de Rota.md │ └── 5-Transições no VueRouter.md │ ├── 5-Vuex │ ├── 1-Gerenciamento de Estado.md │ ├── 2-Iniciando com Vuex.md │ ├── 3-State.md │ ├── 4-Actions.md │ ├── 5-Mutations.md │ ├── 6-Getters.md │ ├── 7-Estrutura.md │ └── 8-Modules.md │ ├── 6-Bibliotecas Adicionais │ ├── 1-Vuelidate.md │ ├── 2-Vuei18n.md │ ├── 3-VueAWN.md │ ├── 4-VueDarkMode.md │ ├── 5-VueResource.md │ ├── 6-VuePropertyDecorator.md │ ├── 7-VueFontAwesome.md │ ├── 8-VuexClassModules.md │ └── 9-AntDesignVue.md │ ├── 7-Testes e Storybook │ ├── 1-Jest no Vue.md │ ├── 2-Cypress no Vue.md │ ├── 3-Storybook.md │ └── 4-Vitest.md │ ├── 8 - Ecossistema Vue │ ├── 1 - Nuxt.md │ ├── 2 - Gridsome.md │ ├── 3 - VueNative.md │ ├── 4 - VueElectron.md │ ├── 5 - Quasar.md │ ├── 6 - Vuepress.md │ └── 7 - Obrigado.md │ └── 9 - Next │ ├── 1 - API.md │ ├── 10 - IonicVue.md │ ├── 11 - Obrigado.md │ ├── 2 - Ecossistema.md │ ├── 3 - Hooks.md │ ├── 4 - Suspense.md │ ├── 5 - JSX.md │ ├── 6 - Typescript.md │ ├── 7 - Vite.md │ ├── 8 - Pinia.md │ └── 9 - Vuetelemetry.md ├── package.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.md] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = false 8 | insert_final_newline = false -------------------------------------------------------------------------------- /.github/workflows/action.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Deploy to GH-Pages 3 | 4 | on: 5 | push: 6 | branches: [ master ] 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | strategy: 14 | matrix: 15 | node-version: [12.x] 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: Use Node.js ${{ matrix.node-version }} 20 | uses: actions/setup-node@v1 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | - name: Install dependencies 24 | run: yarn 25 | - name: Run build 26 | run: yarn build 27 | - name: Deploy 28 | uses: JamesIves/github-pages-deploy-action@3.7.1 29 | with: 30 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 31 | BRANCH: gh-pages 32 | FOLDER: docs/.vuepress/dist 33 | CLEAN: true 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | *.vue 3 | dist 4 | node_modules -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Giovane Cardoso 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 |

4 | 5 | Logo 6 | 7 | 8 |

Vue4Noobs desenvolvido pela He4rt Developers

9 |

10 | 11 | 12 | ## Conteúdo 13 | 14 | **Não tem necessidade de rodar o projeto, ele está disponível** [aqui](https://novout.github.io/vue4noobs) 15 | 16 | 17 | 18 | ## Sobre o Projeto 19 | 20 | Produzido com a colaboração da **He4rt Developers**, esse tutorial tem como objetivo principal apresentar e ensinar o básico do framework **Vue** em sua versão **2.x** e **3.x**, de uma maneira completa e acessível para todos. 21 | 22 | ## Conhecimento Necessário para contribuir 23 | 24 | - Vue.js 25 | - Vuepress 26 | 27 | 28 | 29 | ## Iniciando 30 | 31 | Para fazer uma cópia e rodar o projeto localmente, siga estes passos. 32 | 33 | ### Pré-requisitos 34 | 35 | Os programas a seguir são necessários para estender, modificar e utilizar o projeto. 36 | 37 | - [Git](https://git-scm.com) 38 | - [Node](https://nodejs.org/en/) 39 | - [Yarn](https://yarnpkg.com/) 40 | 41 | ### Instalação 42 | 43 | Clone o repositório 44 | 45 | ```zsh 46 | git clone https://github.com/Novout/vue4noobs.git 47 | ``` 48 | 49 | Rode o projeto: 50 | 51 | ```zsh 52 | yarn && yarn dev 53 | ``` 54 | 55 | 56 | 57 | ## Como Contribuir 58 | 59 | Contribuições fazem com que a comunidade open source seja um lugar incrível para aprender, inspirar e criar. Todas contribuições 60 | são **extremamente apreciadas** 61 | 62 | 1. Realize um Fork do projeto 63 | 2. Crie um branch com a nova feature (`git checkout -b feature/featureBraba`) 64 | 3. Adicione o Conteúdo (`git add -A`) 65 | 4. Realize o Commit (`git commit -m 'Adicionado conteudo brabo'`) 66 | 5. Realize o Push no Branch (`git push origin feature/featureBraba`) 67 | 6. Abra um Pull Request 68 | 69 | ## Colaboradores 70 | 71 | Giovane Cardoso - Developer [@NovoutT](https://twitter.com/NovoutT) - novout@hotmail.com 72 | Lucas Souza (@deverebor) - *Frontend Software Engineer at Juntos Somos Mais* - [Twitter](https://twitter.com/deverebor) 73 | -------------------------------------------------------------------------------- /REFERENCES.md: -------------------------------------------------------------------------------- 1 | # Referencias para a construção das seções 2 | 3 | **O projeto utilizou estes links como auxilio para o desenvolvimento do curso, e não sua cópia.** 4 | 5 | - [LifeCycle](https://alligator.io/vuejs/component-lifecycle/) 6 | - [Load Error](https://alligator.io/vuejs/vue-async-components-load-error/) 7 | - [Class and Styles](https://vuejs.org/v2/guide/class-and-style.html) 8 | - [Async Components](https://vueschool.io/articles/vuejs-tutorials/async-vuejs-components) 9 | - [Mixins in Vue](https://levelup.gitconnected.com/how-to-use-mixins-in-vuejs-a40cc3fb4428) 10 | - [BusEvent](https://medium.com/@andrejsabrickis/https-medium-com-andrejsabrickis-create-simple-eventbus-to-communicate-between-vue-js-components-cdc11cd59860) 11 | - [Sass Guidelines](https://sass-guidelin.es/pt/) by *community* 12 | - [SCSS como você nunca viu](https://dev.to/deverebor/scss-como-voce-nunca-viu-1d99) by *@deverebor* 13 | - [Sass Basics](https://sass-lang.com/guide) by *Sass* 14 | -------------------------------------------------------------------------------- /assets/Conceitos/Diretivas/vfor1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Conceitos/Diretivas/vfor1.png -------------------------------------------------------------------------------- /assets/Conceitos/LifeCycleHooks/lifecyclehooks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Conceitos/LifeCycleHooks/lifecyclehooks.png -------------------------------------------------------------------------------- /assets/Conceitos/Transições/simple_transition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Conceitos/Transições/simple_transition.png -------------------------------------------------------------------------------- /assets/Iniciando com Vue/Componentização/componentization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Iniciando com Vue/Componentização/componentization.png -------------------------------------------------------------------------------- /assets/Iniciando com Vue/VueCLI/vuecreate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Iniciando com Vue/VueCLI/vuecreate.png -------------------------------------------------------------------------------- /assets/Iniciando com Vue/VueCLI/vuelocalhost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Iniciando com Vue/VueCLI/vuelocalhost.png -------------------------------------------------------------------------------- /assets/Iniciando com Vue/VueCLI/vueproject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Iniciando com Vue/VueCLI/vueproject.png -------------------------------------------------------------------------------- /assets/Next/Vuetelemetry/util.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Next/Vuetelemetry/util.png -------------------------------------------------------------------------------- /assets/Testes e Storybook/Cypress no Vue/e2e-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Testes e Storybook/Cypress no Vue/e2e-tests.png -------------------------------------------------------------------------------- /assets/Testes e Storybook/Cypress no Vue/e2e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Testes e Storybook/Cypress no Vue/e2e.png -------------------------------------------------------------------------------- /assets/Testes e Storybook/Storybook/storybook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Testes e Storybook/Storybook/storybook.png -------------------------------------------------------------------------------- /assets/Vue Router/Iniciando com Vue Router/router-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vue Router/Iniciando com Vue Router/router-structure.png -------------------------------------------------------------------------------- /assets/Vue Router/Navegação/login-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vue Router/Navegação/login-page.png -------------------------------------------------------------------------------- /assets/Vue Router/Rotas Filhas/dashboard-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vue Router/Rotas Filhas/dashboard-home.png -------------------------------------------------------------------------------- /assets/Vuetify/Componentes/component_header_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/Componentes/component_header_final.png -------------------------------------------------------------------------------- /assets/Vuetify/Componentes/component_header_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/Componentes/component_header_location.png -------------------------------------------------------------------------------- /assets/Vuetify/Componentes/project_landing_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/Componentes/project_landing_page.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/create_project_dependencies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/create_project_dependencies.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/create_project_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/create_project_details.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/create_project_features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/create_project_features.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/create_project_preset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/create_project_preset.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/project_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/project_dashboard.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/project_helloworld.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/project_helloworld.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/project_plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/project_plugin.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/project_vue_cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/project_vue_cli.png -------------------------------------------------------------------------------- /assets/Vuetify/O que e Vuetify/project_vuetify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/O que e Vuetify/project_vuetify.png -------------------------------------------------------------------------------- /assets/Vuetify/he4rt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuetify/he4rt-logo.png -------------------------------------------------------------------------------- /assets/Vuex/Gerenciamento de Estado/vuex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuex/Gerenciamento de Estado/vuex.png -------------------------------------------------------------------------------- /assets/Vuex/Gerenciamento de Estado/vuex_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/Vuex/Gerenciamento de Estado/vuex_structure.png -------------------------------------------------------------------------------- /assets/vue2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/assets/vue2.png -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | base: "/vue4noobs/", 3 | title: "Vue4noobs pela He4rt Developers", 4 | theme: "yuu", 5 | description: "Vue.js", 6 | head: [ 7 | ["link", { rel: "icon", href: "/favicon.ico" }], 8 | ["meta", { name: 'google-site-verification', content: 'bmr3QFy052qbYVYRSuLrZrIpJPgIoLv2kIOXfdkwtkk' }], 9 | ], 10 | themeConfig: { 11 | yuu: { 12 | defaultDarkTheme: true, 13 | defaultColorTheme: "purple", 14 | }, 15 | nav: [ 16 | { text: "Home", link: "/" }, 17 | { text: "Tutorial", link: "/tutorial/1-Iniciando%20com%20Vue/0-Antes%20de%20começar.html" }, 18 | { text: "He4rt", link: "https://twitter.com/He4rtDevs" } 19 | ], 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Novout/vue4noobs/ea2a76bb83a9bdac242d681414e7c863a9b0c459/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 |

2 | Vue logo 3 |

4 | 5 |

Tutorial De Vue para iniciantes em frameworks JavaScript.

6 | 7 | ## Necessário 8 | 9 | - Conhecimento sobre HTML, CSS 10 | - Conhecimento sobre JavaScript (principalmente sobre DOM) 11 | - Instalar [NodeJS](https://nodejs.org/en/) 12 | - Instalar [Yarn](https://yarnpkg.com/) 13 | 14 | ## ROADMAP 15 | 16 | O curso aborda conceitos tanto do Vue 2.x quanto do Vue 3.x 17 | 18 | ### Iniciando com Vue 19 | 20 | 0. [Antes de começar](/tutorial/1-Iniciando%20com%20Vue/0-Antes%20de%20começar.md) 21 | 1. [O que é Vue](/tutorial/1-Iniciando%20com%20Vue/1-O%20que%20e%20Vue.md) 22 | 2. [VueCLI](/tutorial/1-Iniciando%20com%20Vue/2-VueCLI.md) 23 | 3. [Estrutura do Projeto](/tutorial/1-Iniciando%20com%20Vue/3-Estrutura%20do%20Projeto.md) 24 | 4. [Fluxo e Props](/tutorial/1-Iniciando%20com%20Vue/4-Fluxo%20e%20Props.md) 25 | 5. [Componentização](/tutorial/1-Iniciando%20com%20Vue/5-Componentização.md) 26 | 27 | ### Conceitos 28 | 29 | 1. [Data-Methods-Modificadores](/tutorial/2-Conceitos/1-Data,%20Methods%20e%20Modificadores.md) 30 | 2. [Diretivas](/tutorial/2-Conceitos/2-Diretivas.md) 31 | 3. [Computed e Watch](/tutorial/2-Conceitos/3-Computed%20e%20Watch.md) 32 | 4. [CSS](/tutorial/2-Conceitos/4-CSS.md) 33 | 5. [Instância Vue](/tutorial/2-Conceitos/5-Instância%20Vue.md) 34 | 6. [LifeCycleHooks](/tutorial/2-Conceitos/6-LifeCycleHooks.md) 35 | 7. [BusEvent](/tutorial/2-Conceitos/7-BusEvent.md) 36 | 8. [Transições](/tutorial/2-Conceitos/8-Transições.md) 37 | 9. [Keep Alive](/tutorial/2-Conceitos/9-Keep%20Alive.md) 38 | 10. [Mixins](/tutorial/2-Conceitos/10-Mixins.md) 39 | 11. [Pre-Processadores](/tutorial/2-Conceitos/11-Pre-Processadores.md) 40 | 12. [Considerações](/tutorial/2-Conceitos/12-Considerações.md) 41 | 42 | ### Vuetify 43 | 44 | 1. [Iniciando com Vuetify](/tutorial/3-Vuetify/1-Iniciando%20com%20Vuetify.md) 45 | 2. [Criando Componentes](/tutorial/3-Vuetify/2-Criando%20Componentes.md) 46 | 3. [Customização](/tutorial/3-Vuetify/3-Customização.md) 47 | 4. [Considerações](/tutorial/3-Vuetify/4-Considerações.md) 48 | 49 | ### VueRouter 50 | 51 | 1. [Iniciando com Vue Router](/tutorial/4-Vue%20Router/1-Iniciando%20com%20Vue%20Router.md) 52 | 2. [Navegação](/tutorial/4-Vue%20Router/2-Navegação.md) 53 | 3. [Rotas Filhas](/tutorial/4-Vue%20Router/3-Rotas%20Filhas.md) 54 | 4. [Guardas de Rota](/tutorial/4-Vue%20Router/4-Guardas%20de%20Rota.md) 55 | 5. [Transições no VueRouter](/tutorial/4-Vue%20Router/5-Transições%20no%20VueRouter.md) 56 | 57 | ### Vuex 58 | 59 | 1. [Gerenciamento de Estado](/tutorial/5-Vuex/1-Gerenciamento%20de%20Estado.md) 60 | 2. [Iniciando com Vuex](/tutorial/5-Vuex/2-Iniciando%20com%20Vuex.md) 61 | 3. [State](/tutorial/5-Vuex/3-State.md) 62 | 4. [Actions](/tutorial/5-Vuex/4-Actions.md) 63 | 5. [Mutations](/tutorial/5-Vuex/5-Mutations.md) 64 | 6. [Getters](/tutorial/5-Vuex/6-Getters.md) 65 | 7. [Estrutura](/tutorial/5-Vuex/7-Estrutura.md) 66 | 8. [Modules](/tutorial/5-Vuex/8-Modules.md) 67 | 68 | ### Bibliotecas Adicionais 69 | 70 | 1. [Vuelidate](/tutorial/6-Bibliotecas%20Adicionais/1-Vuelidate.md) 71 | 2. [Vuei18n](/tutorial/6-Bibliotecas%20Adicionais/2-Vuei18n.md) 72 | 3. [VueAWN](/tutorial/6-Bibliotecas%20Adicionais/3-VueAWN.md) 73 | 4. [VueDarkMode](/tutorial/6-Bibliotecas%20Adicionais/4-VueDarkMode.md) 74 | 5. [VueResource](/tutorial/6-Bibliotecas%20Adicionais/5-VueResource.md) 75 | 6. [VuePropertyDecorator](/tutorial/6-Bibliotecas%20Adicionais/6-VuePropertyDecorator.md) 76 | 7. [VueFontAwesome](/tutorial/6-Bibliotecas%20Adicionais/7-VueFontAwesome.md) 77 | 8. [VuexClassModules](/tutorial/6-Bibliotecas%20Adicionais/8-VuexClassModules.md) 78 | 9. [AntDesignVue](/tutorial/6-Bibliotecas%20Adicionais/9-AntDesignVue.md) 79 | 80 | ### Testes e Storybook 81 | 82 | 1. [Jest no Vue](/tutorial/7-Testes%20e%20Storybook/1-Jest%20no%20Vue.md) 83 | 2. [Cypress no Vue](/tutorial/7-Testes%20e%20Storybook/2-Cypress%20no%20Vue.md) 84 | 3. [Storybook](/tutorial/7-Testes%20e%20Storybook/3-Storybook.md) 85 | 4. [Vitest](/tutorial/7-Testes%20e%20Storybook/4-Vitest.md) 86 | 87 | ### Ecossistema Vue 88 | 89 | 1. [Nuxt](/tutorial/8%20-%20Ecossistema%20Vue/1%20-%20Nuxt.md) 90 | 2. [Gridsome](/tutorial/8%20-%20Ecossistema%20Vue/2%20-%20Gridsome.md) 91 | 3. [VueNative](/tutorial/8%20-%20Ecossistema%20Vue/3%20-%20VueNative.md) 92 | 4. [VueElectron](/tutorial/8%20-%20Ecossistema%20Vue/4%20-%20VueElectron.md) 93 | 5. [Quasar](/tutorial/8%20-%20Ecossistema%20Vue/5%20-%20Quasar.md) 94 | 6. [Vuepress](/tutorial/8%20-%20Ecossistema%20Vue/6%20-%20Vuepress.md) 95 | 7. [Obrigado](/tutorial/8%20-%20Ecossistema%20Vue/7%20-%20Obrigado.md) 96 | 97 | ### Vue 3 98 | 99 | 1. [API de Composição](/tutorial/9%20-%20Next/1%20-%20API.md) 100 | 2. [Ecossistema](/tutorial/9%20-%20Next/2%20-%20Ecossistema.md) 101 | 3. [Hooks](/tutorial/9%20-%20Next/3%20-%20Hooks.md) 102 | 4. [Suspense](/tutorial/9%20-%20Next/4%20-%20Suspense.md) 103 | 5. [JSX](/tutorial/9%20-%20Next/5%20-%20JSX.md) 104 | 6. [TypeScript](/tutorial/9%20-%20Next/6%20-%20Typescript.md) 105 | 7. [Vite](/tutorial/9%20-%20Next/7%20-%20Vite.md) 106 | 8. [Pinia](/tutorial/9%20-%20Next/8%20-%20Pinia.md) 107 | 9. [Vuetelemetry](/tutorial/9%20-%20Next/9%20-%20Vuetelemetry.md) 108 | 10. [IonicVue](/tutorial/9%20-%20Next/10%20-%20IonicVue.md) 109 | 11. [Obrigado](/tutorial/9%20-%20Next/11%20-%20Obrigado.md) 110 | 111 | ## Repositório 112 | 113 | [Github](https://github.com/Novout/vue4noobs) 114 | 115 | ## Autores 116 | 117 | * **Giovane Cardoso (Novout)** - *Freelance Frontend Developer & Member of He4rt Developers* - [Twitter](https://twitter.com/NovoutT) 118 | * **Lucas Souza (deverebor)** - *Frontend Software Engineer at Juntos Somos Mais & Member of He4rt Developers* - [Twitter](https://twitter.com/deverebor) 119 | 120 |

Made with 💜

121 | -------------------------------------------------------------------------------- /docs/tutorial/1-Iniciando com Vue/0-Antes de começar.md: -------------------------------------------------------------------------------- 1 | ## Antes de começar 2 | 3 | Bem-Vindo ao curso!Nosso objetivo é te oferecer todo o conteúdo introdutório para Vue em todos os aspectos possíveis. 4 | 5 | Para o curso, é necessario um bom conhecimento de HTML/CSS e especialmente JavaScript, devido ao fato do curso ser focado apenas na framework, e não na linguagem. 6 | 7 | Temas que serão abordados: 8 | 9 | - Vue 10 | - Vuetify 11 | - Vue Router 12 | - Vuex 13 | - Bibliotecas 14 | - Testes 15 | - Ecossistema 16 | 17 | Não se assuste, **depois de Vuex** não iremos aprofundar muito sobre as tecnologias, o intuito é você saber que aquilo existe no ecossistema Vue, dando uma noção geral para você conseguir se aprofundar no Vue :) 18 | 19 | ## Vue 3 20 | 21 | O curso foi feito para a versão 2.x, mas não se preocupe! o Vue 3 apenas acrescenta novos conteúdos, toda a base do vue continua sendo a mesma! 22 | 23 | [Ir para Próxima Seção](./1-O%20que%20e%20Vue.md) 24 | -------------------------------------------------------------------------------- /docs/tutorial/1-Iniciando com Vue/1-O que e Vue.md: -------------------------------------------------------------------------------- 1 | # Vue 2 | 3 | Sejam bem vindos ao paper de Vue da [He4rt Developers](discord.io/He4rt), aqui nós iremos dar uma introdução ao framework **Vue**, mostrando todo o seu conceito e mostrando como utilizar de maneira efetiva. 4 | 5 | O **Vue**(se pronuncia **view**) é um framework para a construção de sites de forma progressiva, sendo diferente de outros tipo de estrutura monolítica. O ecossistema do **Vue** é extenso possibilitando ao desenvolvedor construir aplicações Frontend Web. 6 | 7 | ## Comunidade 8 | 9 | A comunidade do **Vue** vem crescendo cada vez mais, iremos estar disponibilizando alguns links da comunidade para auxiliar seu estudo sobre a framework. 10 | 11 | [Fórum](https://forum.vuejs.org) 12 | 13 | [VueJSBrasil](http://vuejs-brasil.com.br/) 14 | 15 | [VueSchool](https://vueschool.io/) 16 | 17 | [VueMastery](https://www.vuemastery.com) 18 | 19 | [MadeWithVue](https://madewithvuejs.com) 20 | 21 | [LearnVue](https://twitter.com/LearnVuejs2) 22 | 23 | ## SPA(Single Page Aplication) 24 | 25 | Significa que no **Vue** teremos uma aplicação web completa acontecendo em uma única página sem a necessidade de recarregar a página. O **Vue** também possui **SSR(Server Side Render)** com o **Nuxt** e aplicações **PWA** com o **Quasar**, mas neste início vamos focar apenas no **SPA** e apresentar alternativas futuramente. 26 | 27 | Utilizando este conceito conseguimos construir aplicações frontend de forma robusta e escalável. 28 | 29 | ## Virtual DOM 30 | 31 | Virtual DOM é um framework para manipulação do DOM(Document Object Model) que é utilizado pelo **Vue**, ele faz uma representação do DOM real na linguagem JavaScript, ou seja, o DOM verdadeiro é gerado a partir do DOM Virtual.Por conta disso, o **Vue** utiliza o **vue-loader** para fazer todo o ciclo do Virtual DOM e conseguir transformar no DOM final. 32 | 33 | ## VueLoader 34 | 35 | O **vue-loader** irá analisar o arquivo, pegar cada bloco de linguagem e montá-lo de volta em um módulo CommonJs cujo module.exports seja um objeto de opções do componente **Vue.js**. 36 | 37 | Para manipular, o **Vue** utiliza um sistema de componentes com a extensão **.vue**. O arquivo é um formato de arquivo personalizado que usa a sintaxe parecido com o HTML para descrever um componente Vue. Cada arquivo é dividido em três partes: `