├── .gitignore
├── LICENSE
├── README.md
├── chapter-01
├── 1_3
│ ├── README.md
│ ├── render.html
│ └── template.html
├── 1_4
│ ├── README.md
│ └── component.html
├── 1_5
│ ├── README.md
│ └── reactivity.html
├── 1_6
│ ├── README.md
│ └── composeAPI.html
└── README.md
├── chapter-02
├── 2_1
│ ├── .gitignore
│ ├── README.md
│ ├── index.js
│ ├── index.ts
│ ├── package.json
│ └── tsconfig.json
├── 2_10
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── classComponentsHooks
│ │ │ └── vue-router.js
│ │ ├── components
│ │ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── main.ts
│ │ ├── router.ts
│ │ ├── shims-tsx.d.ts
│ │ ├── shims-vue.d.ts
│ │ └── views
│ │ │ ├── About.vue
│ │ │ ├── Home.vue
│ │ │ └── Secure.vue
│ └── tsconfig.json
├── 2_11
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── Counter.vue
│ │ │ └── CounterByTen.vue
│ │ ├── main.ts
│ │ ├── mixins
│ │ │ ├── defaultNumber.ts
│ │ │ └── numberWatcher.ts
│ │ ├── shims-tsx.d.ts
│ │ └── shims-vue.d.ts
│ └── tsconfig.json
├── 2_3
│ ├── .gitignore
│ ├── Animal.ts
│ ├── Dog.ts
│ ├── README.md
│ ├── package.json
│ └── tsconfig.json
├── 2_4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 2_5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ ├── store
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ └── Home.vue
├── 2_6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── HelloWorld.vue
│ │ ├── main.ts
│ │ ├── shims-tsx.d.ts
│ │ └── shims-vue.d.ts
│ └── tsconfig.json
├── 2_7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── Counter.vue
│ │ ├── main.ts
│ │ ├── shims-tsx.d.ts
│ │ └── shims-vue.d.ts
│ └── tsconfig.json
├── 2_8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── Counter.vue
│ │ │ └── CounterByTen.vue
│ │ ├── main.ts
│ │ ├── mixins
│ │ │ └── defaultNumber.ts
│ │ ├── shims-tsx.d.ts
│ │ └── shims-vue.d.ts
│ └── tsconfig.json
├── 2_9
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── Counter.vue
│ │ ├── decorators
│ │ │ ├── componentLogger.js
│ │ │ └── componentMount.js
│ │ ├── main.ts
│ │ ├── shims-tsx.d.ts
│ │ └── shims-vue.d.ts
│ └── tsconfig.json
└── README.md
├── chapter-03
├── 3_1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── CurrentTime.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_10
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_11
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
├── 3_9
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CurrentTime.vue
│ │ └── TaskInput.vue
│ │ ├── main.js
│ │ └── style.css
└── README.md
├── chapter-04
├── 4_1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── MaterialCardBox.vue
│ │ ├── main.js
│ │ └── style
│ │ └── elevation.css
├── 4_2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── MaterialCardBox.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ └── elevation.css
├── 4_3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── MaterialCardBox.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ └── elevation.css
├── 4_4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ └── MaterialCardBox.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ └── elevation.css
├── 4_5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ ├── StarRating.vue
│ │ ├── StarRatingDisplay.vue
│ │ └── StarRatingInput.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ ├── materialIcons.css
│ │ └── starRating.css
├── 4_6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ ├── StarRating.vue
│ │ ├── StarRatingDisplay.vue
│ │ └── StarRatingInput.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ ├── materialIcons.css
│ │ └── starRating.css
├── 4_7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ ├── StarRating.vue
│ │ ├── StarRatingDisplay.vue
│ │ └── StarRatingInput.vue
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ ├── materialIcons.css
│ │ └── starRating.css
├── 4_8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ ├── StarRating.vue
│ │ ├── StarRatingDisplay.vue
│ │ └── StarRatingInput.vue
│ │ ├── main.js
│ │ ├── mixins
│ │ ├── starRatingBase.js
│ │ ├── starRatingChild.js
│ │ ├── starRatingDisplay.js
│ │ └── starRatingName.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ ├── materialIcons.css
│ │ └── starRating.css
├── 4_9
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ ├── StarRating.vue
│ │ ├── StarRatingDisplay.vue
│ │ └── StarRatingInput.vue
│ │ ├── main.js
│ │ ├── mixins
│ │ ├── starRatingBase.js
│ │ ├── starRatingChild.js
│ │ ├── starRatingDisplay.js
│ │ └── starRatingName.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ ├── materialIcons.css
│ │ └── starRating.css
└── README.md
├── chapter-05
├── 5_1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ └── fetchApi.js
│ │ └── main.js
├── 5_2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── MaterialButton.vue
│ │ ├── MaterialCardBox.vue
│ │ └── RandomCat.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ └── fetchApi.js
│ │ ├── main.js
│ │ └── style
│ │ ├── cardStyles.css
│ │ ├── elevation.css
│ │ └── materialIcons.css
├── 5_3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ └── fetchApi.js
│ │ ├── main.js
│ │ └── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
├── 5_4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ └── fetchApi.js
│ │ ├── main.js
│ │ └── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
├── 5_5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ └── fetchApi.js
│ │ ├── main.js
│ │ └── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
├── 5_6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── http
│ │ ├── baseFetch.js
│ │ ├── fetchApi.js
│ │ └── interceptors.js
│ │ ├── main.js
│ │ └── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
├── 5_7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── HelloWorld.vue
│ │ │ ├── create.vue
│ │ │ ├── list.vue
│ │ │ ├── update.vue
│ │ │ ├── userForm.vue
│ │ │ └── view.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeComponent.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ └── style.css
│ └── vue.config.js
└── README.md
├── chapter-06
├── 6.1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── HelloWorld.vue
│ │ └── navigationBar.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ ├── Home.vue
│ │ └── contact.vue
├── 6.2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── HelloWorld.vue
│ │ └── navigationBar.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ ├── Home.vue
│ │ └── contact.vue
├── 6.3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ └── index.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 6.4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ └── index.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 6.5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ └── index.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 6.6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 6.7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 6.8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
└── 6.9
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ ├── favicon.ico
│ └── index.html
│ ├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── userForm.vue
│ ├── http
│ │ ├── baseFetch.js
│ │ ├── fetchApi.js
│ │ └── interceptors.js
│ ├── main.js
│ ├── mixin
│ │ └── changeRoute.js
│ ├── router
│ │ ├── index.js
│ │ ├── middleware
│ │ │ └── authentication.js
│ │ └── user.js
│ ├── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
│ ├── style.css
│ └── views
│ │ ├── Login.vue
│ │ ├── NotFound.vue
│ │ └── user
│ │ ├── Create.vue
│ │ ├── Edit.vue
│ │ ├── Index.vue
│ │ ├── List.vue
│ │ └── View.vue
│ └── vue.config.js
├── chapter-07
├── 7.1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ ├── store
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ └── Home.vue
├── 7.2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── index.js
│ │ │ │ └── state.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 7.3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ ├── state.js
│ │ │ │ └── types.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 7.4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── getters.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ ├── state.js
│ │ │ │ └── types.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 7.5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ └── userForm.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ └── changeRoute.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── actions.js
│ │ │ │ ├── getters.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ ├── state.js
│ │ │ │ └── types.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 7.6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── userForm.vue
│ │ │ └── userList.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ ├── changeRoute.js
│ │ │ └── vuex.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── actions.js
│ │ │ │ ├── getters.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ ├── state.js
│ │ │ │ └── types.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
├── 7.7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── userForm.vue
│ │ │ └── userList.vue
│ │ ├── http
│ │ │ ├── baseFetch.js
│ │ │ ├── fetchApi.js
│ │ │ └── interceptors.js
│ │ ├── main.js
│ │ ├── mixin
│ │ │ ├── changeRoute.js
│ │ │ └── vuex.js
│ │ ├── router
│ │ │ ├── index.js
│ │ │ ├── middleware
│ │ │ │ └── authentication.js
│ │ │ └── user.js
│ │ ├── server
│ │ │ ├── db.js
│ │ │ ├── delete.js
│ │ │ ├── get.js
│ │ │ ├── patch.js
│ │ │ ├── post.js
│ │ │ └── server.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── user
│ │ │ │ ├── actions.js
│ │ │ │ ├── getters.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ ├── state.js
│ │ │ │ └── types.js
│ │ ├── style.css
│ │ └── views
│ │ │ ├── Login.vue
│ │ │ ├── NotFound.vue
│ │ │ └── user
│ │ │ ├── Create.vue
│ │ │ ├── Edit.vue
│ │ │ ├── Index.vue
│ │ │ ├── List.vue
│ │ │ └── View.vue
│ └── vue.config.js
└── 7.8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ ├── favicon.ico
│ └── index.html
│ ├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ ├── userForm.vue
│ │ └── userList.vue
│ ├── http
│ │ ├── baseFetch.js
│ │ ├── fetchApi.js
│ │ └── interceptors.js
│ ├── main.js
│ ├── mixin
│ │ ├── changeRoute.js
│ │ └── vuex.js
│ ├── router
│ │ ├── index.js
│ │ ├── middleware
│ │ │ └── authentication.js
│ │ └── user.js
│ ├── server
│ │ ├── db.js
│ │ ├── delete.js
│ │ ├── get.js
│ │ ├── patch.js
│ │ ├── post.js
│ │ └── server.js
│ ├── store
│ │ ├── authentication
│ │ │ ├── index.js
│ │ │ └── state.js
│ │ ├── index.js
│ │ └── user
│ │ │ ├── actions.js
│ │ │ ├── getters.js
│ │ │ ├── index.js
│ │ │ ├── mutations.js
│ │ │ ├── state.js
│ │ │ └── types.js
│ ├── style.css
│ └── views
│ │ ├── Login.vue
│ │ ├── NotFound.vue
│ │ └── user
│ │ ├── Create.vue
│ │ ├── Edit.vue
│ │ ├── Index.vue
│ │ ├── List.vue
│ │ └── View.vue
│ └── vue.config.js
├── chapter-08
├── 08.1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 08.2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 08.3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 08.4
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 08.5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ └── main.js
├── 08.6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ ├── CustomTransition.vue
│ │ └── HelloWorld.vue
│ │ └── main.js
└── 08.7
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ ├── favicon.ico
│ └── index.html
│ └── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ └── main.js
├── chapter-09
├── 09.1
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ ├── logo.png
│ │ └── scss
│ │ │ ├── _variables.scss
│ │ │ └── app.scss
│ │ ├── components
│ │ ├── Footer.vue
│ │ ├── HeroSection.vue
│ │ └── TopMenu.vue
│ │ ├── layouts
│ │ └── Main.vue
│ │ └── main.js
├── 09.2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── src
│ │ ├── App.vue
│ │ ├── assets
│ │ │ ├── logo.png
│ │ │ └── logo.svg
│ │ ├── components
│ │ │ ├── DrawerMenu.vue
│ │ │ ├── Layout.vue
│ │ │ └── TopBar.vue
│ │ ├── main.js
│ │ └── plugins
│ │ │ └── vuetify.js
│ └── vue.config.js
└── 09.3
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ ├── favicon.ico
│ └── index.html
│ └── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ ├── Drawer.vue
│ ├── Layout.vue
│ └── TopBar.vue
│ ├── main.js
│ └── plugins
│ └── ant-design-vue.js
├── chapter-10
├── 10.2
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── _redirects
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ ├── store
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ └── Home.vue
├── 10.5
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── _redirects
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ ├── store
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ └── Home.vue
├── 10.6
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package.json
│ ├── public
│ │ ├── _redirects
│ │ ├── favicon.ico
│ │ └── index.html
│ └── src
│ │ ├── App.vue
│ │ ├── assets
│ │ └── logo.png
│ │ ├── components
│ │ └── HelloWorld.vue
│ │ ├── main.js
│ │ ├── router
│ │ └── index.js
│ │ ├── store
│ │ └── index.js
│ │ └── views
│ │ ├── About.vue
│ │ └── Home.vue
└── 10.8
│ ├── .browserslistrc
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .firebase
│ └── hosting.ZGlzdA.cache
│ ├── .firebaserc
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── firebase.json
│ ├── package.json
│ ├── public
│ ├── _redirects
│ ├── favicon.ico
│ └── index.html
│ └── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ ├── main.js
│ ├── router
│ └── index.js
│ ├── store
│ └── index.js
│ └── views
│ ├── About.vue
│ └── Home.vue
└── chapter-11
├── 11.1
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ ├── main.js
│ ├── router
│ ├── index.js
│ └── routes
│ │ ├── about.js
│ │ └── home.js
│ └── views
│ ├── About.vue
│ └── Home.vue
├── 11.2
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ ├── main.js
│ └── store
│ ├── index.js
│ ├── loader.js
│ └── modules
│ ├── user.js
│ └── user
│ ├── actions.js
│ ├── getters.js
│ ├── mutations.js
│ ├── state.js
│ └── types.js
├── 11.3
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── directives
│ ├── formMaskInputDirective.js
│ └── tokens.js
│ └── main.js
├── 11.4
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ ├── main.js
│ └── plugin
│ └── storageManipulator.js
├── 11.5
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── README.md
├── babel.config.js
├── jsconfig.json
├── package.json
├── public
│ ├── favicon.ico
│ └── icons
│ │ ├── apple-icon-120x120.png
│ │ ├── apple-icon-152x152.png
│ │ ├── apple-icon-167x167.png
│ │ ├── apple-icon-180x180.png
│ │ ├── favicon-128x128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── icon-128x128.png
│ │ ├── icon-192x192.png
│ │ ├── icon-256x256.png
│ │ ├── icon-384x384.png
│ │ ├── icon-512x512.png
│ │ ├── ms-icon-144x144.png
│ │ └── safari-pinned-tab.svg
├── quasar.conf.js
├── src-cordova
│ ├── config.xml
│ ├── cordova-flag.d.ts
│ ├── hooks
│ │ └── README.md
│ └── package.json
├── src-electron
│ ├── electron-flag.d.ts
│ ├── icons
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── linux-512x512.png
│ └── main-process
│ │ ├── electron-main.dev.js
│ │ └── electron-main.js
├── src-pwa
│ ├── custom-service-worker.js
│ ├── pwa-flag.d.ts
│ └── register-service-worker.js
├── src-ssr
│ ├── extension.js
│ ├── index.js
│ └── ssr-flag.d.ts
└── src
│ ├── App.vue
│ ├── assets
│ ├── quasar-logo-full.svg
│ └── sad.svg
│ ├── boot
│ └── .gitkeep
│ ├── components
│ └── EssentialLink.vue
│ ├── css
│ ├── app.sass
│ └── quasar.variables.sass
│ ├── index.template.html
│ ├── layouts
│ └── MainLayout.vue
│ ├── pages
│ ├── About.vue
│ ├── Error404.vue
│ └── Index.vue
│ └── router
│ ├── index.js
│ └── routes.js
├── 11.6
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ ├── main.js
│ └── mixins
│ ├── deepImmediate.js
│ ├── gettersAndSetters.js
│ ├── methodsNames.js
│ ├── multipleHandlers.js
│ └── noCache.js
├── 11.7
├── .gitignore
├── README.md
├── client
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── assets
│ │ └── README.md
│ ├── components
│ │ ├── README.md
│ │ ├── TodoForm.vue
│ │ └── TodoList.vue
│ ├── layouts
│ │ ├── README.md
│ │ └── default.vue
│ ├── middleware
│ │ └── README.md
│ ├── nuxt.config.js
│ ├── package.json
│ ├── pages
│ │ ├── README.md
│ │ └── index.vue
│ ├── plugins
│ │ └── README.md
│ ├── server
│ │ └── index.js
│ ├── static
│ │ ├── README.md
│ │ └── favicon.ico
│ └── store
│ │ └── README.md
└── server
│ └── app.py
├── 11.8
├── .browserslistrc
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ └── index.html
└── src
│ ├── App.vue
│ ├── assets
│ └── logo.png
│ ├── components
│ └── HelloWorld.vue
│ └── main.js
└── README.md
/chapter-01/1_3/README.md:
--------------------------------------------------------------------------------
1 | # 1.3 - Creating components with multiple root elements
2 |
--------------------------------------------------------------------------------
/chapter-01/1_4/README.md:
--------------------------------------------------------------------------------
1 | # 1.4 - Creating components with attribute inheritance
2 |
--------------------------------------------------------------------------------
/chapter-01/1_5/README.md:
--------------------------------------------------------------------------------
1 | # 1.5 - Using the reactivity and observable API outside the scope of Vue
2 |
--------------------------------------------------------------------------------
/chapter-01/1_6/README.md:
--------------------------------------------------------------------------------
1 | # 1.6 - Creating a component using the composition API
2 |
--------------------------------------------------------------------------------
/chapter-02/2_1/README.md:
--------------------------------------------------------------------------------
1 | # 2.1 - Creating a TypeScript Project
2 |
3 | ## Project setup
4 | ```
5 | yarn install
6 | ```
7 |
8 | ### Compiles for development
9 | ```
10 | tsc ./index.ts
11 | ```
--------------------------------------------------------------------------------
/chapter-02/2_1/index.js:
--------------------------------------------------------------------------------
1 | function sum(a, b) {
2 | return a + b;
3 | }
4 | var firstNumber = 10;
5 | var secondNumber = 20;
6 | console.log(sum(firstNumber, secondNumber));
7 |
--------------------------------------------------------------------------------
/chapter-02/2_1/index.ts:
--------------------------------------------------------------------------------
1 | function sum(a: number, b: number): number {
2 | return a + b;
3 | }
4 |
5 | const firstNumber: number = 10;
6 |
7 | const secondNumber: number = 20;
8 |
9 | console.log(sum(firstNumber, secondNumber));
--------------------------------------------------------------------------------
/chapter-02/2_10/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_10/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_10/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_10/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_10/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_10/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_10/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_10/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_10/src/classComponentsHooks/vue-router.js:
--------------------------------------------------------------------------------
1 | import Component from 'vue-class-component';
2 |
3 | Component.registerHooks([
4 | 'beforeRouteEnter',
5 | 'beforeRouteLeave',
6 | ]);
7 |
--------------------------------------------------------------------------------
/chapter-02/2_10/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_10/src/main.ts:
--------------------------------------------------------------------------------
1 | import './classComponentsHooks/vue-router';
2 |
3 | import Vue from 'vue';
4 | import App from './App.vue';
5 | import router from './router';
6 |
7 |
8 | Vue.config.productionTip = false;
9 |
10 | new Vue({
11 | router,
12 | render: h => h(App),
13 | }).$mount('#app');
14 |
--------------------------------------------------------------------------------
/chapter-02/2_10/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-02/2_10/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-02/2_11/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_11/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_11/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_11/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_11/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_11/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_11/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_11/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_11/src/main.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_11/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-02/2_3/Dog.ts:
--------------------------------------------------------------------------------
1 | import {Animal, FoodChainType} from './Animal';
2 |
3 | class Dog extends Animal {
4 | constructor() {
5 | super({
6 | name: 'Dog',
7 | sound: 'Wof!',
8 | family: 'Canidae',
9 | foodChainType: FoodChainType.Carnivorous,
10 | });
11 | }
12 | }
--------------------------------------------------------------------------------
/chapter-02/2_3/README.md:
--------------------------------------------------------------------------------
1 | # 2.3 - Creating your first TypeScript class
2 |
3 | ## Project setup
4 | ```
5 | yarn install
6 | ```
7 |
8 | ### Compiles for development
9 | ```
10 | tsc ./Dog.ts
11 | ```
--------------------------------------------------------------------------------
/chapter-02/2_4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-02/2_4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_4/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-02/2_5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-02/2_5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_5/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | createApp(App).use(store).use(router).mount('#app');
7 |
--------------------------------------------------------------------------------
/chapter-02/2_5/src/store/index.js:
--------------------------------------------------------------------------------
1 | import { createStore } from 'vuex';
2 |
3 | export default createStore({
4 | state: {
5 | },
6 | mutations: {
7 | },
8 | actions: {
9 | },
10 | modules: {
11 | },
12 | });
13 |
--------------------------------------------------------------------------------
/chapter-02/2_5/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-02/2_6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_6/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_6/src/main.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_6/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-02/2_7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_7/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_7/src/main.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_7/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-02/2_8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_8/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_8/src/main.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_8/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-02/2_9/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-02/2_9/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-02/2_9/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_9/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-02/2_9/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_9/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-02/2_9/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-02/2_9/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-02/2_9/src/decorators/componentMount.js:
--------------------------------------------------------------------------------
1 | import { createDecorator } from 'vue-class-component';
2 | import componentMountLogger from './componentLogger';
3 |
4 | export default createDecorator((options) => {
5 | options.mixins = [...options.mixins, componentMountLogger];
6 | });
7 |
--------------------------------------------------------------------------------
/chapter-02/2_9/src/main.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-02/2_9/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import Vue from 'vue';
3 |
4 | export default Vue;
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-03/3_1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_1/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_10/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_10/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_10/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_10/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_10/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_10/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_10/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_10/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import { VuelidatePlugin } from '@vuelidate/core';
3 | import App from './App.vue';
4 | import './style.css';
5 |
6 | const app = createApp(App);
7 | app.use(VuelidatePlugin);
8 | app.mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-03/3_11/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_11/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_11/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_11/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_11/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_11/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_11/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_11/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import { VuelidatePlugin } from '@vuelidate/core';
3 | import App from './App.vue';
4 | import './style.css';
5 |
6 | const app = createApp(App);
7 | app.use(VuelidatePlugin);
8 | app.mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-03/3_2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_2/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_3/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_4/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_5/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_6/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-03/3_7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_7/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-03/3_8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_8/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import { VuelidatePlugin } from '@vuelidate/core';
3 | import App from './App.vue';
4 | import './style.css';
5 |
6 | const app = createApp(App);
7 | app.use(VuelidatePlugin);
8 | app.mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-03/3_9/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-03/3_9/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-03/3_9/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-03/3_9/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_9/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-03/3_9/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-03/3_9/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-03/3_9/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import { VuelidatePlugin } from '@vuelidate/core';
3 | import App from './App.vue';
4 | import './style.css';
5 |
6 | const app = createApp(App);
7 | app.use(VuelidatePlugin);
8 | app.mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-04/4_1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_1/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-04/4_2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_2/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-04/4_3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_3/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-04/4_4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_4/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-04/4_5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_5/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-04/4_6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_6/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-04/4_7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_7/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-04/4_8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_8/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-04/4_8/src/mixins/starRatingBase.js:
--------------------------------------------------------------------------------
1 | export default {
2 | props: {
3 | maxRating: {
4 | type: Number,
5 | required: false,
6 | default: 5,
7 | },
8 | rating: {
9 | type: Number,
10 | required: false,
11 | default: 0,
12 | },
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/chapter-04/4_8/src/mixins/starRatingChild.js:
--------------------------------------------------------------------------------
1 | export default {
2 | inject: {
3 | starRating: {
4 | default() {
5 | console.error('StarRatingDisplay need to be a child of StartRating');
6 | },
7 | },
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-04/4_9/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-04/4_9/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-04/4_9/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-04/4_9/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_9/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-04/4_9/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-04/4_9/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-04/4_9/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-04/4_9/src/mixins/starRatingBase.js:
--------------------------------------------------------------------------------
1 | export default {
2 | props: {
3 | maxRating: {
4 | type: Number,
5 | required: false,
6 | default: 5,
7 | },
8 | rating: {
9 | type: Number,
10 | required: false,
11 | default: 0,
12 | },
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/chapter-04/4_9/src/mixins/starRatingChild.js:
--------------------------------------------------------------------------------
1 | export default {
2 | inject: {
3 | starRating: {
4 | default() {
5 | console.error('StarRatingDisplay need to be a child of StartRating');
6 | },
7 | },
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-05/5_1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_1/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 |
4 | createApp(App).mount('#app');
5 |
--------------------------------------------------------------------------------
/chapter-05/5_2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_2/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
--------------------------------------------------------------------------------
/chapter-05/5_2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_2/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import './style/materialIcons.css';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-05/5_3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_3/src/main.js:
--------------------------------------------------------------------------------
1 | import './server/server';
2 | import { createApp } from 'vue';
3 | import App from './App.vue';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-05/5_3/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | age: 31,
7 | country: 'Brazil',
8 | active: true,
9 | },
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-05/5_3/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_3/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 |
3 | export default {
4 | getFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_4/src/http/baseFetch.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios';
2 |
3 | export default async (url, method, options = {}) => axios({
4 | method: method.toUpperCase(),
5 | url,
6 | ...options,
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-05/5_4/src/main.js:
--------------------------------------------------------------------------------
1 | import './server/server';
2 | import { createApp } from 'vue';
3 | import App from './App.vue';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-05/5_4/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | age: 31,
7 | country: 'Brazil',
8 | active: true,
9 | },
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-05/5_4/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_4/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 |
3 | export default {
4 | getFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_5/src/main.js:
--------------------------------------------------------------------------------
1 | import './server/server';
2 | import { createApp } from 'vue';
3 | import App from './App.vue';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-05/5_5/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | age: 31,
7 | country: 'Brazil',
8 | active: true,
9 | },
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-05/5_5/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_5/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 |
3 | export default {
4 | getFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-05/5_6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_6/src/main.js:
--------------------------------------------------------------------------------
1 | import './server/server';
2 | import { createApp } from 'vue';
3 | import App from './App.vue';
4 |
5 | createApp(App).mount('#app');
6 |
--------------------------------------------------------------------------------
/chapter-05/5_6/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | age: 31,
7 | country: 'Brazil',
8 | active: true,
9 | },
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-05/5_6/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_6/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 |
3 | export default {
4 | getFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-05/5_7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-05/5_7/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-05/5_7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-05/5_7/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-05/5_7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-05/5_7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-05/5_7/src/main.js:
--------------------------------------------------------------------------------
1 | import './server/server';
2 | import Vue from 'vue';
3 | import App from './App.vue';
4 | import Vuesax from 'vuesax';
5 | import './style.css';
6 |
7 | Vue.use(Vuesax);
8 |
9 | Vue.config.productionTip = false;
10 |
11 | new Vue({
12 | render: h => h(App),
13 | }).$mount('#app');
14 |
--------------------------------------------------------------------------------
/chapter-05/5_7/src/mixin/changeComponent.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | changeComponent(component, userId = 0) {
4 | this.$emit('change-component', { component, userId });
5 | },
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-05/5_7/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-05/5_7/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-05/5_7/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-05/5_7/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-05/5_7/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.1/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.1/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | router,
9 | render: h => h(App),
10 | }).$mount('#app');
11 |
--------------------------------------------------------------------------------
/chapter-06/6.1/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/chapter-06/6.1/src/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |

4 |
5 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/chapter-06/6.1/src/views/contact.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is a contact page
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/chapter-06/6.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.2/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | router,
9 | render: h => h(App),
10 | }).$mount('#app');
11 |
--------------------------------------------------------------------------------
/chapter-06/6.2/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/chapter-06/6.2/src/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |

4 |
5 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/chapter-06/6.3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.3/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.3/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.3/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.3/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.3/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.3/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.3/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.3/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.3/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.4/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.4/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.4/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.4/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.4/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.4/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.4/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.4/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.4/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.5/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.5/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.5/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.5/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.5/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.5/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.5/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.5/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.5/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.6/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.6/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.6/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.6/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.6/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-06/6.6/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.7/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.7/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.7/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.7/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.7/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-06/6.7/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.8/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.8/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.8/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.8/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.8/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-06/6.8/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-06/6.9/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-06/6.9/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-06/6.9/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-06/6.9/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-06/6.9/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.9/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.9/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-06/6.9/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-06/6.9/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-06/6.9/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-06/6.9/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-06/6.9/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.1/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | Vue.config.productionTip = false;
7 |
8 | new Vue({
9 | router,
10 | store,
11 | render: h => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-07/7.1/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.2/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.2/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.2/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import UserStore from './user';
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | ...UserStore,
9 | })
10 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 |
3 | export default {
4 | state,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-07/7.2/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.2/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.3/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.3/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.3/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.3/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import UserStore from './user';
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | ...UserStore,
9 | })
10 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 |
4 | export default {
5 | state,
6 | mutations,
7 | };
8 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');
2 | @import url('~vuesax/dist/vuesax.css');
3 | @import url('~material-icons/iconfont/material-icons.css');
4 |
5 | * {
6 | font-family: 'Open Sans', sans-serif;
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-07/7.3/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.3/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.4/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.4/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.4/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.4/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import UserStore from './user';
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | ...UserStore,
9 | })
10 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 | import getters from './getters';
4 |
5 | export default {
6 | state,
7 | mutations,
8 | getters,
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.4/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.4/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.5/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.5/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.5/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.5/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import UserStore from './user';
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | ...UserStore,
9 | })
10 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 | import getters from './getters';
4 | import actions from './actions';
5 |
6 | export default {
7 | state,
8 | mutations,
9 | getters,
10 | actions,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.5/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.5/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.6/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.6/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.6/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.6/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/mixin/vuex.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | loading() {
4 | return this.$store.loading;
5 | },
6 | error() {
7 | return this.$store.error;
8 | },
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import UserStore from './user';
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | ...UserStore,
9 | })
10 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 | import getters from './getters';
4 | import actions from './actions';
5 |
6 | export default {
7 | state,
8 | mutations,
9 | getters,
10 | actions,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.6/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.6/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.7/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.7/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.7/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.7/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/mixin/vuex.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | loading() {
4 | return this.$store.loading;
5 | },
6 | error() {
7 | return this.$store.error;
8 | },
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 | import getters from './getters';
4 | import actions from './actions';
5 |
6 | export default {
7 | state,
8 | mutations,
9 | getters,
10 | actions,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.7/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.7/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-07/7.8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-07/7.8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-07/7.8/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/chapter-07/7.8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-07/7.8/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-07/7.8/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-07/7.8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-07/7.8/src/mixin/changeRoute.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 | async changeRoute(name, id = 0) {
4 | await this.$router.push({
5 | name,
6 | params: {
7 | id,
8 | },
9 | });
10 | },
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/mixin/vuex.js:
--------------------------------------------------------------------------------
1 | export default {
2 | computed: {
3 | loading() {
4 | return this.$store.loading;
5 | },
6 | error() {
7 | return this.$store.error;
8 | },
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/router/middleware/authentication.js:
--------------------------------------------------------------------------------
1 | export default (to, from, next) => {
2 | if (to.meta.authenticated && sessionStorage.getItem('auth')) {
3 | return next();
4 | }
5 |
6 | if (!to.meta.authenticated) {
7 | return next();
8 | }
9 |
10 | next('/login');
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/server/db.js:
--------------------------------------------------------------------------------
1 | export default {
2 | users: [
3 | {
4 | name: 'Heitor Ramon Ribeiro',
5 | email: 'heitor@example.com',
6 | birthday: '1988-06-15',
7 | country: 'Brazil',
8 | phone: '+55 00 0000 0000',
9 | active: true,
10 | },
11 | ],
12 | };
13 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/server/delete.js:
--------------------------------------------------------------------------------
1 | export const deleteFrom = key => (schema, request) => schema.db[key].remove(request.params.id);
2 |
3 | export default {
4 | deleteFrom,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/server/get.js:
--------------------------------------------------------------------------------
1 | export const getFrom = key => ({ db }) => db[key];
2 | export const getFromBy = key => ({ db }, request) => {
3 | return db[key].find(Number(request.params.id));
4 | };
5 |
6 | export default {
7 | getFrom,
8 | getFromBy
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/store/authentication/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 |
3 | export default {
4 | namespaced: true,
5 | state,
6 | };
7 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/store/authentication/state.js:
--------------------------------------------------------------------------------
1 | const generateState = () => ({
2 | data: {
3 | username: '',
4 | token: '',
5 | expiresAt: null,
6 | },
7 | loading: false,
8 | error: null,
9 | });
10 |
11 | export default { ...generateState() };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/store/user/index.js:
--------------------------------------------------------------------------------
1 | import state from './state';
2 | import mutations from './mutations';
3 | import getters from './getters';
4 | import actions from './actions';
5 |
6 | export default {
7 | state,
8 | mutations,
9 | getters,
10 | actions,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/store/user/types.js:
--------------------------------------------------------------------------------
1 | export default {
2 | LOADING: 'LOADING',
3 | ERROR: 'ERROR',
4 | SET_USER_LIST: 'SET_USER_LIST',
5 | SET_USER_DATA: 'SET_USER_DATA',
6 | UPDATE_USER: 'UPDATE_USER',
7 | REMOVE_USER: 'REMOVE_USER',
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-07/7.8/src/views/user/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/chapter-07/7.8/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | configureWebpack: {
3 | resolve: {
4 | alias: {
5 | 'vue$': 'vue/dist/vue.esm.js'
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-08/08.1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.1/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: (h) => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-08/08.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import 'animate.css';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-08/08.3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.3/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import 'animate.css';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-08/08.4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.4/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import 'animate.css';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-08/08.5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.5/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import 'animate.css';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-08/08.6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.6/src/components/CustomTransition.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/chapter-08/08.6/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import 'animate.css';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-08/08.7/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-08/08.7/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-08/08.7/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-08/08.7/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.7/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-08/08.7/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-08/08.7/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-08/08.7/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: (h) => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-09/09.1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-09/09.1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-09/09.1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-09/09.1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-09/09.1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-09/09.1/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Buefy from 'buefy';
3 | import App from './App.vue';
4 | import './assets/scss/app.scss';
5 |
6 | Vue.use(Buefy);
7 |
8 | Vue.config.productionTip = false;
9 |
10 | new Vue({
11 | render: (h) => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-09/09.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-09/09.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-09/09.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-09/09.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-09/09.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-09/09.2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import vuetify from './plugins/vuetify';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | vuetify,
9 | render: (h) => h(App),
10 | }).$mount('#app');
11 |
--------------------------------------------------------------------------------
/chapter-09/09.2/src/plugins/vuetify.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuetify from 'vuetify/lib';
3 |
4 | Vue.use(Vuetify);
5 |
6 | export default new Vuetify({
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-09/09.2/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | transpileDependencies: [
3 | 'vuetify',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-09/09.3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-09/09.3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-09/09.3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-09/09.3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-09/09.3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-09/09.3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-09/09.3/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import './plugins/ant-design-vue';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount('#app');
10 |
--------------------------------------------------------------------------------
/chapter-09/09.3/src/plugins/ant-design-vue.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Antd from 'ant-design-vue';
3 | import 'ant-design-vue/dist/antd.css';
4 |
5 | Vue.use(Antd);
6 |
--------------------------------------------------------------------------------
/chapter-10/10.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-10/10.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-10/10.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-10/10.2/public/_redirects:
--------------------------------------------------------------------------------
1 | # Netlify settings for single-page application
2 | /* /index.html 200
3 |
--------------------------------------------------------------------------------
/chapter-10/10.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-10/10.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-10/10.2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | Vue.config.productionTip = false;
7 |
8 | new Vue({
9 | router,
10 | store,
11 | render: (h) => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-10/10.2/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 |
4 | Vue.use(Vuex);
5 |
6 | export default new Vuex.Store({
7 | state: {
8 | },
9 | mutations: {
10 | },
11 | actions: {
12 | },
13 | modules: {
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/chapter-10/10.2/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-10/10.5/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-10/10.5/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-10/10.5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-10/10.5/public/_redirects:
--------------------------------------------------------------------------------
1 | # Netlify settings for single-page application
2 | /* /index.html 200
3 |
--------------------------------------------------------------------------------
/chapter-10/10.5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-10/10.5/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.5/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-10/10.5/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | Vue.config.productionTip = false;
7 |
8 | new Vue({
9 | router,
10 | store,
11 | render: (h) => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-10/10.5/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 |
4 | Vue.use(Vuex);
5 |
6 | export default new Vuex.Store({
7 | state: {
8 | },
9 | mutations: {
10 | },
11 | actions: {
12 | },
13 | modules: {
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/chapter-10/10.5/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-10/10.6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-10/10.6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-10/10.6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-10/10.6/public/_redirects:
--------------------------------------------------------------------------------
1 | # Netlify settings for single-page application
2 | /* /index.html 200
3 |
--------------------------------------------------------------------------------
/chapter-10/10.6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-10/10.6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-10/10.6/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | Vue.config.productionTip = false;
7 |
8 | new Vue({
9 | router,
10 | store,
11 | render: (h) => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-10/10.6/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 |
4 | Vue.use(Vuex);
5 |
6 | export default new Vuex.Store({
7 | state: {
8 | },
9 | mutations: {
10 | },
11 | actions: {
12 | },
13 | modules: {
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/chapter-10/10.6/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-10/10.8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-10/10.8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-10/10.8/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "vue-3-cookbook-firebase-18921"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/chapter-10/10.8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-10/10.8/public/_redirects:
--------------------------------------------------------------------------------
1 | # Netlify settings for single-page application
2 | /* /index.html 200
3 |
--------------------------------------------------------------------------------
/chapter-10/10.8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-10/10.8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-10/10.8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-10/10.8/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 | import store from './store';
5 |
6 | Vue.config.productionTip = false;
7 |
8 | new Vue({
9 | router,
10 | store,
11 | render: (h) => h(App),
12 | }).$mount('#app');
13 |
--------------------------------------------------------------------------------
/chapter-10/10.8/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 |
4 | Vue.use(Vuex);
5 |
6 | export default new Vuex.Store({
7 | state: {
8 | },
9 | mutations: {
10 | },
11 | actions: {
12 | },
13 | modules: {
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/chapter-10/10.8/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-11/11.1/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-11/11.1/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.1/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.1/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.1/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.1/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.1/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import router from './router';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | router,
9 | render: (h) => h(App),
10 | }).$mount('#app');
11 |
--------------------------------------------------------------------------------
/chapter-11/11.1/src/router/routes/home.js:
--------------------------------------------------------------------------------
1 | import Home from '../../views/Home.vue';
2 |
3 | export default {
4 | path: '/',
5 | name: 'home',
6 | component: Home,
7 | };
8 |
--------------------------------------------------------------------------------
/chapter-11/11.1/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chapter-11/11.2/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/chapter-11/11.2/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.2/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.2/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 | import store from './store';
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | store,
9 | render: (h) => h(App),
10 | }).$mount('#app');
11 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import modules from './loader';
4 |
5 | Vue.use(Vuex);
6 |
7 | export default new Vuex.Store({
8 | modules,
9 | });
10 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user.js:
--------------------------------------------------------------------------------
1 | import state from './user/state';
2 | import actions from './user/actions';
3 | import mutations from './user/mutations';
4 | import getters from './user/getters';
5 |
6 | export default {
7 | state,
8 | actions,
9 | mutations,
10 | getters,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user/actions.js:
--------------------------------------------------------------------------------
1 | import * as MT from './types';
2 |
3 | export function saveUser({
4 | commit,
5 | }, userName) {
6 | commit(MT.SAVE_USER, userName);
7 | }
8 |
9 | export default {
10 | saveUser,
11 | };
12 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user/getters.js:
--------------------------------------------------------------------------------
1 | export const getUserName = state => state.name;
2 |
3 | export default {
4 | getUserName,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user/mutations.js:
--------------------------------------------------------------------------------
1 | import * as MT from './types';
2 |
3 | function saveUserName(state, userName) {
4 | state.name = userName;
5 | }
6 |
7 | export default {
8 | [MT.SAVE_USER]: saveUserName,
9 | };
10 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user/state.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: '',
3 | };
4 |
--------------------------------------------------------------------------------
/chapter-11/11.2/src/store/modules/user/types.js:
--------------------------------------------------------------------------------
1 | export const SAVE_USER = 'SAVE_USER';
2 |
3 | export default {
4 | SAVE_USER,
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.3/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-11/11.3/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.3/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.3/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.3/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.4/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-11/11.4/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.4/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.4/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.4/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.4/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.4/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.4/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.5/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/chapter-11/11.5/.eslintignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /src-bex/www
3 | /src-capacitor
4 | /src-cordova
5 | /.quasar
6 | /node_modules
7 |
--------------------------------------------------------------------------------
/chapter-11/11.5/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | plugins: [
5 | // to edit target browsers: use "browserslist" field in package.json
6 | require('autoprefixer')
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/chapter-11/11.5/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "dbaeumer.vscode-eslint",
4 |
5 | "octref.vetur"
6 | ],
7 | "unwantedRecommendations": [
8 | "hookyqr.beautify",
9 | "dbaeumer.jshint",
10 | "ms-vscode.vscode-typescript-tslint-plugin"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/chapter-11/11.5/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "vetur.validation.template": false,
3 | "vetur.format.enable": false,
4 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
5 |
6 | "vetur.experimental.templateInterpolationService": true
7 | }
8 |
--------------------------------------------------------------------------------
/chapter-11/11.5/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@quasar/babel-preset-app',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/apple-icon-120x120.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/apple-icon-152x152.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/apple-icon-167x167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/apple-icon-167x167.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/apple-icon-180x180.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/favicon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/favicon-128x128.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/favicon-96x96.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/icon-128x128.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/icon-192x192.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/icon-256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/icon-256x256.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/icon-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/icon-384x384.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/icon-512x512.png
--------------------------------------------------------------------------------
/chapter-11/11.5/public/icons/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/public/icons/ms-icon-144x144.png
--------------------------------------------------------------------------------
/chapter-11/11.5/src-electron/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/src-electron/icons/icon.icns
--------------------------------------------------------------------------------
/chapter-11/11.5/src-electron/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/src-electron/icons/icon.ico
--------------------------------------------------------------------------------
/chapter-11/11.5/src-electron/icons/linux-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/src-electron/icons/linux-512x512.png
--------------------------------------------------------------------------------
/chapter-11/11.5/src-pwa/custom-service-worker.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file (which will be your service worker)
3 | * is picked up by the build system ONLY if
4 | * quasar.conf > pwa > workboxPluginMode is set to "InjectManifest"
5 | */
6 |
--------------------------------------------------------------------------------
/chapter-11/11.5/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/chapter-11/11.5/src/boot/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.5/src/boot/.gitkeep
--------------------------------------------------------------------------------
/chapter-11/11.5/src/css/app.sass:
--------------------------------------------------------------------------------
1 | // app global css in Sass form
2 |
--------------------------------------------------------------------------------
/chapter-11/11.6/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-11/11.6/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.6/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.6/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.6/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.6/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.6/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.6/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.6/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------
/chapter-11/11.6/src/mixins/methodsNames.js:
--------------------------------------------------------------------------------
1 | export default {
2 | watch: {
3 | myField: 'myFunction',
4 | },
5 | data: () => ({
6 | myField: '',
7 | }),
8 | methods: {
9 | myFunction() {
10 | console.log('Watcher Using Method Name');
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/chapter-11/11.6/src/mixins/noCache.js:
--------------------------------------------------------------------------------
1 | export default {
2 | data: () => ({
3 | noCacheField: '',
4 | }),
5 | computed: {
6 | noCache: {
7 | get() {
8 | return this.noCacheField;
9 | },
10 | cache: false,
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/chapter-11/11.7/client/components/README.md:
--------------------------------------------------------------------------------
1 | # COMPONENTS
2 |
3 | **This directory is not required, you can delete it if you don't want to use it.**
4 |
5 | The components directory contains your Vue.js Components.
6 |
7 | _Nuxt.js doesn't supercharge these components._
8 |
--------------------------------------------------------------------------------
/chapter-11/11.7/client/layouts/default.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chapter-11/11.7/client/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.7/client/static/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.8/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/chapter-11/11.8/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{js,jsx,ts,tsx,vue}]
2 | indent_style = space
3 | indent_size = 2
4 | end_of_line = lf
5 | trim_trailing_whitespace = true
6 | insert_final_newline = true
7 | max_line_length = 100
8 |
--------------------------------------------------------------------------------
/chapter-11/11.8/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset',
4 | ],
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.8/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chapter-11/11.8/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.8/public/favicon.ico
--------------------------------------------------------------------------------
/chapter-11/11.8/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Vue.js-3.0-Cookbook/2e1023632e15dd8a6661263e31468c9364e10663/chapter-11/11.8/src/assets/logo.png
--------------------------------------------------------------------------------
/chapter-11/11.8/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App.vue';
3 |
4 | Vue.config.productionTip = false;
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app');
9 |
--------------------------------------------------------------------------------