- Header元素使用mint-ui来实现顶部元素
- Footer元素使用MUI来实现固定底部tabbar
- MUI自带图标包,包括mui-icon和mui-icon-extra
- 在引入类名的时候,要记得同时引入样式
- Content元素使用.vue组件来实现
- 下载vue-router包
npm i vue-router --save
- 将footer元素转换为路由链接,用router-link替代 a标签
- 完成路由组件的编写,并导入到router文件中
- 通过渲染,放入页面,实现路由
通过将router的linkActiveClass属性修改为'mui-active',实现路由链接激活状态的切换
- 注意: 一定要区分 this.$route 和 this.$router 这两个对象
- this.$route 是路由的【参数对象】,所有路由中的参数, params, query 都属于它
- this.$router 是路由的【导航对象】,用它可以方便的使用JS代码,实现路由的前进,后退,跳转到新的 URL地址
- 方法:
- 可以通过router-link 来实现路由跳转
- 编程式导航
-
轮播图的实现
- 可以利用第三方的插件来实现,例如 Bootstrap 或者 Mint-UI 来实现,这里选择Mint-UI
- 轮播图相关代码直接复制粘贴即可
- 轮播图相关资源的获取有几个重点
- 如果使用vue-resource来获取资源,则除了引入包之外,还需要使用
Vue.use(VueResource) 来注册使用
- 如果使用axios来获取资源,因为axios并非基于vue封装的,所以需要采用另一种方式,即
Vue.prototype.axios = axios然后使用时,为
this.axios.get(url).then().catch() - vue中的变量,除了使用 {{msg}}外, 需要使用数据绑定的形式,即v-bind
- 如果使用vue-resource来获取资源,则除了引入包之外,还需要使用
-
六宫格的实现
- 重点实现顶部的左右滑动效果,结合MUI中给出的实例进行相应的修改
在使用mui的时候,要引入mui.js文件,因为webpack会将js文件自动打包,利用babel将ES6转换为ES5的严格模式,由于mui.js中使用到了非严格的语法,所以会报错,解决方案,就是在.babelrc中配置 "ignore": ["./src/lib/dist/js/mui.min.js" ],以此来取消严格模式
- 另外,新一代的浏览器,会使滑动模块的preventDefault不奏效,所以在进行滚动操作的时候会报错,解决方法是:
添加css样式 * {touch-action: none}
- 利用transition 标签包裹 router-view , 同时为enter和leave添加样式
.v-enter { opacity: 0; transform: translateX(100%); } .v-leave-to { opacity: 0; transform: translateX(-100%); position: absolute } .v-enter-active, .v-leave-active { transition: all 0.5s ease }
- 要保证自己的手机可以正常运行
- 要保证手机和开发项目的电脑处于同一个WIFI环境中,即手机可以访问到电脑的 IP
- 打开自己的项目中package.json 文件,在 dev脚本中,添加一个 --host 指令,把当前电脑ip 地址设置为--host的指令值
"dev": "webpack-dev-server --open --port 3000 --hot --host 192.168.42.191"
这样就可以将项目启动在 192.168.42.191的ip之上,其跳转url为 192.168.42.191:3000/#/home - 然后,再在手机上打开浏览器,输入地址url,就可以看到视图效果了
- Vuex是为了保存组件之间共享数据而诞生的,如果组件之间有要共享的数据,可以直接挂载到vuex中,而不必通过父子组件之间传值了,如果组件的数据不需要共享,此时,这些不需要共享的私有数据就没必要放到vuex中
- 只有共享的数据,才有权利放到vuex中
- 组件内部私有的数据,只要放到组件的data中即可
- data是组件内的私有属性,只受组件管控
- props是父组件传递过来的数据,子组件无法修改
- vuex是一个全局的共享数据存储区域,就相当于一个数据的仓库