vue也弄了一段时间了, 前段时间一直想用vue写个移动端,加之年末也不是很忙,因而前几天便着手开始弄了,到今天为止也算是勉强能看了html
由于也是纯粹的写写前端页面,因此数据方面用的是mock.js,为了真实的模拟请求,能够直接在 Easy Mock 本身生成API
也可直接登录我这项目的Easy Mock帐号密码:前端
帐号: vue-toutiao
密码: 123456vue
若是你想修改接口,请copy一份在修改webpack
若是你想后台接口也本身开发的话。能够阅读我这篇博客 Vue + Node + Mongodb 开发一个完整博客流程ios
vue
+ webpack
+ vuex
+ axios
git
assets
: 静态资源文件,存放图片啥的components
: 经常使用组件封装directive
: 经常使用指令封装router
: 路由表store
: 状态管理 vuexstyles
: 样式文件utils
: 经常使用工具类封装views
: 视图页面此项目用到了 DllPlugin 进行打包处理,全部启动该项目时记得,先执行一次该脚本命令生成配置github
{ path: '/development', name: 'development', component: (resolve) => { require(['../views/development.vue'], resolve) } }
或web
const _import_ = file => () => import('views/' + file + '.vue') { path: '/development', name: 'development', component: _import_('development') }
经过路由的 beforeEach 钩子函数来判断是否须要登录vuex
// 如:系统设置须要登录 { path: '/system', name: '系统设置', meta: { login: true }, component: _import_('System/index') } router.beforeEach((to, from, next) => { if (to.meta.login) { //判断前往的界面是否须要登录 if (store.state.user.user.name) { // 是否已经登录 next() }else{ Vue.prototype.$alert('请先登陆!') .then( () => { store.state.user.isLogin = true }) } }else{ if (to.meta.page) store.state.app.pageLoading = true next() } })
经过检测设置在 Router上的animate属性 来判断它作什么样的切换动画chrome
Router.prototype.animate = 0 // 获取每一个路由meta上面的slide 来判断它作什么动画 { path: '/system', name: '系统设置', meta: { slide: 1 }, component: _import_('System/index') } watch: { $route (to, from) { /* 0: 不作动画 1: 左切换 2: 右切换 3: 上切换 4: 下切换 ... */ let animate = this.$router.animate || to.meta.slide if (!animate) { this.animate = '' }else{ this.animate = animate === 1 ? 'slide-left' : animate === 2 ? 'slide-right' : animate === 3 ? 'slide-top' : animate === 4 ? 'slide-bottom' : '' } this.$router.animate = 0 } }
一些更加详细的配置可在github上查看
github地址
博客地址