安装及使用Vue
- 安装vue-cli脚手架:
npm install -g @vue/cli
- 创建vue项目:
vue create project_name
- 启动项目:
npm run serve
- 打包项目:
npm run build
- 安装包:
npm install element-ui --save
(安装的包记录在package.json) - vue配置: vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15lintOnSave:false, //禁用语法检查
//开发环境设置
devServer: {
port: 8088, //端口
proxy: {
'/api': {
target: 'http://192.18.10.111:8080', //代理的目标地址
ws: true,
changeOrigin: true,
pathRewrite: {
'^/api': '/'
}
}
}
}
Vue语法
1 | <span>{{ msg }}</span> //文本插值 |
Vue基础
1 | export default { |
Vue路由
- 安装:
npm i -S vue-router@3.0.1
- main.js:
import router from '@/router/index.js'
- App.vue:
<router-view></router-view>
- @/router/index.js:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{path: '/console',
name:'Console',
component: () => import("@/views/Console"),
redirect: '/task', //重定向
meta: {
title: 'Console',
activeMenu: 'Console',
requireAuth: true, //路由权限
},
children: [
{
path: '/task',
name:'Task',
component: () => import("@/views/Console/Task"),
meta: {
title: 'Task',
activeMenu: 'Console',
}
},
]}
组件通信
- 父子组件通信:
1
2
3
4
5
6
7
8
9
10
11
12
13
14//父组件
<SideMenu @toParentId="toContent" :sideMenuList="sideMenuList"></SideMenu> //父组件传值给子组件
//子组件SideMenu.vue
props: {
sideMenuList: {
type: Array,
required: true
},
} //子组件接收父组件的值
methods: {
selectMenu(key) {
this.$emit("toParentId",key) //子组件向父组件传值
},
} - localStorage:
- 存值:
localStorage.setItem(key, value)
- 取值:
localStorage.getItem(key)
- 存值:
- vuex状态管理:
- 使用公共数据state:
this.$store.state.x
- 修改公共数据mutations:
this.$store.commit('mutations名',参数)
- 使用公共数据state:
网络请求Axios
- Get请求:
axios.get(url,{params:}).then().catch()
- Post请求:
axios.post(url,{}).then().catch()
组件国际化&使用Echart
- ElementUI组件国际化(main.js):
Vue.use(ElementUI, { locale })
ElementUI参考地址: https://element.eleme.cn/#/zh-CN/component/installation - 多语言切换: main.js组件中使用:
1
2
3
4
5
6
7
8
9import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const i18n = new VueI18n({
locale: localStorage.getItem('languageSet') || 'en',
messages: {
'zh': require('./components/language/zh'),
'en': require('./components/language/en'),
},
});<span>{{$t('item.name')}}</span>
- 使用Echart(main.js):
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts