有赞商城总结

首页

  1. ul列表触底加载更多数据
    使用外部UI库mint-uiinfinite-scroll无限滚动指令,实质就是滚动距底部一定距离,执行方法进行数据请求。
  2. Foot组件的点击切换和跳转其他页面
  • Foot组件底部导航图标.active切换
    遍历列表生成底部导航图标,通过location.search拿到查询参数,qs.parse( )解析得到CurIndex(默认初始值0),动态绑定class通过index==CurIndex判断是否激活active类。
  • 点击跳转
    click后,把点击图标的index作为查询参数放到location.href上实现跳转。
methods: {
    changeNav(list, index) {
      location.href = `${list.href}?index=${index}`;
    }
}

列表页(search.html)

  1. top按钮显现
    监听touchmove事件,document.doucumentElement.scrollTop > 200显现
  2. 点击top按钮滚动到顶部的过渡效果
    使用第三方库velocity-animate
import Velocity from 'velocity-animate'

toTop(){
  Velocity(document.body,"scroll",{duration: 1000})
}

vue组件通信的方式

  1. down-props
  2. 自定义事件 $emit()
  3. 全局事件bus
  4. vuex 状态管理

个人主页/收货地址管理

  1. 路由配置
    嵌套路由,在个人主页里面还嵌套有子路由
let routes = [{
  /* 路由配置 */
  path:'/',
  component: member,
},{
  path: '/address',
  component: address,
  /* 嵌套路由 */
  children:[{
    path: '',
    redirect: 'all' /* 重定向跳转到/all */
  },{
    name:'all',
    path:'all',
    component:all,
  },{
    name: 'form',
    path:'form',
    component:form,
  }]
}]
  1. 路由跳转的方式
  • 声明式导航 (router-link 动态绑定to属性)
    <router-link :to="{name:'form' ,query:{type:'add'}}">
  • 编程式导航(this.$router
    除了使用<router-link>创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,在 Vue 实例内部,你可以通过$router访问路由实例
toEdit(list){
  // this.$router.push({path:'/address/form'})
  // 编程式导航
  this.$router.push({name:'form',query:{
      type: 'edit',
      instance: list,
  }})
},
  • 总结:
    不论是声明式导航还是编程式导航,获取路由跳转后的参数都是this.$route
    3. vuex状态管理
    地址列表的初始化,添加,删除,更新,设为默认地址都是通过vuex仓库状态管理。
    创建一个store包含三部分
const store = new Vuex.Store({
  state:{
    lists: null,
  },
  mutations:{
    // 同步操作
    init(state,lists){
      state.lists = lists
    }
  },
  actions:{
    // 异步操作
    getLists(){
      axios.get(url.addressLists).then(res=>{
        // commit触发传入数据,触发init方法
        store.commit('init',res.data.lists)
      })
    }
}
  • state
    获取状态对象,通过this.$store.state获取
  • mutations
    直接修改state,但是只能是同步操作,通过this.$store.commit执行。
  • actions
    通过commit mutations 间接的修改state,可以包含异步操作, 通过this.$store.dispatch调用。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • vue-cli搭建项目 确保安装了node与npm 再目标文件夹下打开终端 执行cnpm i vue-cli -g...
    Akiko_秋子阅读 8,518评论 1 22
  • 渲染函数和jsx 在vue中我们可以不用template来指定组件的模板,而是用render函数来创建虚拟dom结...
    6e5e50574d74阅读 4,019评论 0 0
  • Vuejs技术栈知识点小结 阅读目录 前言 Vue vue-router vuex 前言 上家公司的项目主要是使用...
    yichen_china阅读 4,383评论 0 0
  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 13,318评论 1 52
  • vuex 场景重现:一个用户在注册页面注册了手机号码,跳转到登录页面也想拿到这个手机号码,你可以通过vue的组件化...
    sunny519111阅读 12,464评论 4 111

友情链接更多精彩内容