npm i npm start
这是一个基于vue技术的单页SPA项目,模仿的时网易严选移动端项目,基本功能已经实现,还存在一些bug后续改善 通过模块化,组件化,工程化创建对象,
- vue-cli -- vue脚手架
- vuex -- 管理状态类似于redux
- vue-router -- vue的路由
- axios -- 向后台发送数据
- mockjs -- 前台模拟后台数据
- stylus -- css与编译器
- stylus-loader -- 按需加载
- vue-lazyload -- 图片懒加载
- better-scroll -- 必须超过容器大小才可以滑动
- swiper -- 轮播插件
- mint-ui -- 移动端的ui库
- 一级路由
- 首页
- 识物页
- 分类
- 购物车
- 个人
- 登录
- 注册
- 二级路由
- 分类
- 短信登录/email登录
- alertTip
- 雪碧图
- 字体图标
- 适配 rem适配 width=device-width -- 布局视口等于视觉视口
- 点击跳转路由
- 前台登录验证
- 识物页的小圆点
- 可以设置定时器 切换状态
- 倒计时
- 登录注册验证时的滑动验证
- 二维数组
- better-scroll使用过程中的问题
- 移动端时手指滑动,设置左右滑动的时候,上下滑动不了 * 解决 设置添加属性
- swiper使用过程中遇到的问题
- 两翼留白,居中显示 * 解决:添加配置项
- 单边显示下一个slide一部分
- 创建的时机 1. mounted - 数据回来之后创建swiper对象 dispatch的时候传入callback,数据收到之后调用回调函数,创建对象 2. watch - 监视数据完成
- 使用过程中
- 尽量用v-if判断后台数据有没有,否则虽然功能没问题但是控制台会报错,
- 如何处理时间格式
- new Date(xx) -- 将需要处理的时间放进去
- getHour/getSecond/getMinite... -- 获取需要的时间
- stylus
- 需要 同时下载stylus-loader -- 按需加载
- mint-ui
- 下载时需要下载按需打包的插件
- 从网易官网下载json数据
- 数据获取错误
- 图片信息错误
- 点击按钮到页面顶部
- 过渡动画
- 过渡动画要么自己触发,要么设置定时器
- 文本两行,然后省略号
- 某个子组件有的组件使用某个不使用
- 在需要使用这个组组件的路由设置中,添加meta配置属性
- 在子组件的最外层包裹器上添加 v-show判断 $route.meta.xx
- 每次切换路由都到路由顶部
- 在目标组件中设置,methods:{resetTo(){window.scrollTo(0,0)}} · created(){this.resetTo()}
- 倒计时
- 用vue插件vue-countdown
- 倒计时处理
- 不用flex如何实现上下居中
- 不通过手动触发怎么触发 过渡动画 解决: 放到vue生命周期函数中
- 登录注册没有设置后台服务器
- 验证短信验证码
- /^\d{6}$/.test(message)
- 验证手机号码
- /^1\d{10}$/.test(phoneNumber)
- 密码验证
- /^.(?=.{6,})(?=.\d)(?=.[A-Z])(?=.[a-z])(?=.[!@#$%^&? ]).*$/
- 最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
- 刚开始图片没收到显示loading图
- 下载 vue-lazyloader
- main.js 中引入
- 然后引入需要的loading
- 注册 --全局有了v-lazy标签
- 那个图片需要懒加载就将src标签换成v-lazy标签
- 注册使用 vueLazyload Vue.use(VueLazyload,{ loading }) 全局组件 有了v-lazy指令
- 路由懒加载
- 在index.js中
- const FirstPage = () => import('../components/FirstPage/FirstPage')
- 缓存路由组件对象 -- 不需要重新获取数据
- 按需打包
- 有的报undefined -- 需要判断v-if
- 共用的css抽成混合
- 一像素边框
- reset.css
- 清除浮动
- mint-ui -- 实现按需打包
- 下载插件
- 解决保存历史号码的问题
- css//input:
- 设置浏览器title旁边的图标
- build -> webpack.dev.conf.js new HtmlWebpackPlugin({ filename: '目标页面' template: ‘目标页面’ inject: true favicon: 'icon address' }
- static 放需要的图标
- npm run build -report
- 可视化图,查看项目打包情况各插件所占体积
- 从而优化,换小体积库
- 保存数据的方法
- 给router-link添加标签 keep-alive
- cookie
- localStorage