安装
我使用的是 vue-cli 初始化项目,命令如下:
之后执行 npm install 进行安装依赖,如果安装速度有点慢的话,可以试一下 cnpm ,具体安装和用法自行查找。
简单介绍下项目的目录结构:
之后在项目根目录执行 npm run dev ,打开浏览器输入 http://localhost:8080 就可以查看了。
目标
路由
路由使用的是 vue-router,具体用法可参考 官方文档
我们这里需要两个路由:
src/router/index.js
const routers = new Router({
routes: [
{
path: '/index',name: 'index',component: Index
},{
path: '/login',name: 'login',component: Login
}
]
})
routers.beforeEach((to,from,next) => {
if (to.name !== 'login' && !localStorage.getItem('token')) {
next({path: 'login'})
} else {
next()
}
})
export default routers
登录页面
src/components/Login.vue
首页
src/components/Index.vue
App
src/App.vue
调用 API
src/api/index.js
setToken: function (token) {
localStorage.setItem('token',token)
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token
},login: function (param) {
return axios.post('oauth/token',param)
},index: function (params) {
return axios.get('api/user/list',{
params: params
})
}
}
config
src/config.js 这里配置登录 oauth 需要的 client_id 和 secret
main.js
src/main.js
Vue.config.productionTip = false
new Vue({
el: '#app',router,components: { App },template: '
})
api 接口
主要用到两个接口,一个是 api/oauth/token 登录获取 token 接口,一个获取列表 api/user/list。