一、准备工作:
1、安装好node 环境 + npm 环境;
2、配置npm淘宝镜像;
npm config set registry https://registry.npm.taobao.org
3、安装@vue/cli脚手架;
npm install -g @vue/cli
4、初始化Vue项目;
vue create my-project
二、常用配置
在我们初始化一个vue项目后,为了便于后期的快速开发,我们最好先做一些简单配置!
1、配置项目运行后自动打开浏览器
"scripts": {
"serve": "vue-cli-service serve --open",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
}
2、关键Eslint自动校验
创建 vue.config.js 配置文件:
module.exports = {
lintOnSave:false,
}
3、设置src文件夹的@别名
创建 jsconfig.json 配置文件:
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}
三、安装Vuex的安装与使用
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
1、Vuex的工作原理
Vuex共分为3个部分:
Actions:Action 类似于 mutation,不同在于:
Action 提交的是 mutation,而不是直接变更状态(参考Mutation的定义);
Action 可以包含任意异步操作(业务代码,或远程请求等,都可以放在这里进行);
Mutations:更改State中的数据的唯一办法是提交mutation,mutation非常类似于事件(Mutation中的方法我们一般大写,区别于Action);
State:驱动应用的数据源,即我们要管理的共享变量(状态);

2、安装Vuex
2.1、安装vuex:
npm install vuex
2.2、创建store/index.js,在其中Vue.use(Vuex):
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
// 状态变量
},
mutations: {
// mutation事件
},
actions: {
// action方法
},
plugins: [
// 用到的插件,如持久化插件
]
})
2.3、将store挂载到vm身上:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
3、安装Vuex的持久化插件
npm install vuex-persistedstate@4.1.0
其他常用插件的安装
1、vue-router 插件的安装
安装vue-router:
npm install vue-router
创建一个路由文件内/src/router/index.js:
import VueRouter from 'vue-router';
import HelloWorld from '@/components/HelloWorld';
export default new VueRouter({
routes:[
{
path:'/hello',
component:HelloWorld
},
]
})
在main.js中引入router:
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router';
import router from '@/router';
Vue.config.productionTip = false
Vue.use(VueRouter)
new Vue({
render: h => h(App),
router
}).$mount('#app')
2、创建并使用全局事件总线(便于组件间数据传输)
直接在main.js中的beforeCreate生命周期钩子函数中添加一个$bus即可:
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router';
import router from '@/router';
Vue.config.productionTip = false
Vue.use(VueRouter)
new Vue({
render: h => h(App),
router,
beforeCreate(){
Vue.prototype.$bus = this //安装全局事件总线
}
}).$mount('#app')
3、引入组件库(以element-ui为例)
安装element-ui:
npm i element-ui
3.1、完整引入:
直接在main.js中引入ElemnetUI + css样式:
import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import VueRouter from 'vue-router';
import router from '@/router';
Vue.config.productionTip = false
Vue.use(ElementUI)
Vue.use(VueRouter)
new Vue({
render: h => h(App),
router,
beforeCreate(){
Vue.prototype.$bus = this //安装全局事件总线
}
}).$mount('#app')
3.2、按需引入(推荐)
需要借助babel-plugin-component,安装:
npm install babel-plugin-component -D ##安装开发依赖
修改 babel.config.js :
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
["@babel/preset-env", { "modules": false }]
],
plugins: [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
在main.js中按需引入,并全局注册我们需要的组件:
import Vue from 'vue'
import { Button, Select } from 'element-ui';
import App from './App.vue'
import VueRouter from 'vue-router';
import router from '@/router';
Vue.config.productionTip = false
//注册全局组件
Vue.component('el-button', Button)
Vue.component('el-select', Select)
Vue.use(VueRouter)
new Vue({
render: h => h(App),
router,
beforeCreate(){
Vue.prototype.$bus = this //安装全局事件总线
}
}).$mount('#app')


