- Run
vue create
to make a new Vue app, and manually select features:- Router
- Vuex
- CSS Pre-processors / SCSS
- Unit Testing / Mocha + Chai
- E2E Testing / Cypress
- Dedicated config files
- Clean up files:
- Delete all routes
- Delete the boilerplate content in
App.vue
(keep the router-view) - Delete the generated views
- Delete the generated component
- Update the content of
index.html
to the actual name of your app - Update the
favicon.ico
- Delete the generated unit test and e2e test
- Add an icon font to your index.html
- Create a
src/styles
folder, and add the following files to it:_colors.scss
_typography.scss
_resets.scss
- Add a suitable color pallete to
src/styles/_colors.scss
- Add a primary header and body font mixin to
src/styles/_typography.scss
- Add the Meyer reset to the
src/styles/_resets.scss
, add add the following fixes to it:- Box sizing
- Link color
- Import your resets in the
App.vue
file - Add
.env
to.gitignore
- Run
npm run build
to generate the app - Create a new firebase project
- Run
firebase init
and set the deployment directory to thedist
folder - Deploy
- Add a view file to
src/views
- Create the template for the view
- Add styles to the view (scoping, using SCSS, and importing typography and colors as needed)
- Add a route to
src/router.js
- Name is a descriptive name
- Path is the URL it should match
- Component is the view that show up at this route
- Add any sample data you want to start with into the
state
key insrc/store.js
- Write the code that will manipulate the data as a new method on
mutations
- Write the code that your app will call to trigger the mutation on
actions
- this includes any network calls - Add any computed properties (data that is derived something in your state) for this data to the
getters
key - Write the code to either read data from
state
or manipulate data withactions
in a view (often either thecreate
hook or as part of a method)
- Write any relevant e2e tests for your views in
tests/e2e/specs
- Add a view file to
src/views
- Add a route to
src/router.js
- Name is a descriptive name
- Path is the URL it should match
- Component is the view that show up at this route
- Identify any components that will be needed for the page, import them, and add them to the
components
list - Create the template for the view, hard-coding data as needed
- Add styles to the view (scoping, using SCSS, and importing typography and colors as needed)
- Identify any data that will need to be retrieved from the store, retrieve it via an action in the
create
hook, and add it to a method in thecomputedProperties
object - Identify any data that will need to be manipulated in the store, and call the relevant actions in a method on the
methods
object - Identify any local state (such as toggling an element) that will be used, and initialize it in the
data
function - Identify any local methods that your template will call, and add them to the
methods
object - Replace your hard-coded data with the dynamic data as appropriate
- Write any relevant component tests for your app in
tests/unit
- Write any relevant unit tests for your app in
tests/unit
- Add a component file to
src/components
- Identify any components that will be used inside the component, import them, and add them to the
components
list - Create the template for the view, hard-coding data as needed
- Add styles to the view (scoping, using SCSS, and importing typography and colors as needed)
- Identify any data that will need to be passed in from the parent view or component and add it to a method to the
props
object - Identify any data or events that will need to be sent outside the component, and emit them from a method on the
methods
object - Identify any local state (such as toggling an element) that will be used, and initialize it in the
data
function - Identify any local methods that your template will call, and add them to the
methods
object - Replace your hard-coded data with the dynamic data as appropriate