有贊商城總結(jié)

首頁(yè)

  1. ul列表觸底加載更多數(shù)據(jù)
    使用外部UI庫(kù)mint-uiinfinite-scroll無(wú)限滾動(dòng)指令,實(shí)質(zhì)就是滾動(dòng)距底部一定距離,執(zhí)行方法進(jìn)行數(shù)據(jù)請(qǐng)求。
  2. Foot組件的點(diǎn)擊切換和跳轉(zhuǎn)其他頁(yè)面
  • Foot組件底部導(dǎo)航圖標(biāo).active切換
    遍歷列表生成底部導(dǎo)航圖標(biāo),通過(guò)location.search拿到查詢參數(shù),qs.parse( )解析得到CurIndex(默認(rèn)初始值0),動(dòng)態(tài)綁定class通過(guò)index==CurIndex判斷是否激活active類。
  • 點(diǎn)擊跳轉(zhuǎn)
    click后,把點(diǎn)擊圖標(biāo)的index作為查詢參數(shù)放到location.href上實(shí)現(xiàn)跳轉(zhuǎn)。
methods: {
    changeNav(list, index) {
      location.href = `${list.href}?index=${index}`;
    }
}

列表頁(yè)(search.html)

  1. top按鈕顯現(xiàn)
    監(jiān)聽(tīng)touchmove事件,document.doucumentElement.scrollTop > 200顯現(xiàn)
  2. 點(diǎn)擊top按鈕滾動(dòng)到頂部的過(guò)渡效果
    使用第三方庫(kù)velocity-animate
import Velocity from 'velocity-animate'

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

vue組件通信的方式

  1. down-props
  2. 自定義事件 $emit()
  3. 全局事件bus
  4. vuex 狀態(tài)管理

個(gè)人主頁(yè)/收貨地址管理

  1. 路由配置
    嵌套路由,在個(gè)人主頁(yè)里面還嵌套有子路由
let routes = [{
  /* 路由配置 */
  path:'/',
  component: member,
},{
  path: '/address',
  component: address,
  /* 嵌套路由 */
  children:[{
    path: '',
    redirect: 'all' /* 重定向跳轉(zhuǎn)到/all */
  },{
    name:'all',
    path:'all',
    component:all,
  },{
    name: 'form',
    path:'form',
    component:form,
  }]
}]
  1. 路由跳轉(zhuǎn)的方式
  • 聲明式導(dǎo)航 (router-link 動(dòng)態(tài)綁定to屬性)
    <router-link :to="{name:'form' ,query:{type:'add'}}">
  • 編程式導(dǎo)航(this.$router
    除了使用<router-link>創(chuàng)建 a 標(biāo)簽來(lái)定義導(dǎo)航鏈接,我們還可以借助 router 的實(shí)例方法,在 Vue 實(shí)例內(nèi)部,你可以通過(guò)$router訪問(wèn)路由實(shí)例
toEdit(list){
  // this.$router.push({path:'/address/form'})
  // 編程式導(dǎo)航
  this.$router.push({name:'form',query:{
      type: 'edit',
      instance: list,
  }})
},
  • 總結(jié):
    不論是聲明式導(dǎo)航還是編程式導(dǎo)航,獲取路由跳轉(zhuǎn)后的參數(shù)都是this.$route。
    3. vuex狀態(tài)管理
    地址列表的初始化,添加,刪除,更新,設(shè)為默認(rèn)地址都是通過(guò)vuex倉(cāng)庫(kù)狀態(tài)管理。
    創(chuàng)建一個(gè)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觸發(fā)傳入數(shù)據(jù),觸發(fā)init方法
        store.commit('init',res.data.lists)
      })
    }
}
  • state
    獲取狀態(tài)對(duì)象,通過(guò)this.$store.state獲取
  • mutations
    直接修改state,但是只能是同步操作,通過(guò)this.$store.commit執(zhí)行。
  • actions
    通過(guò)commit mutations 間接的修改state,可以包含異步操作, 通過(guò)this.$store.dispatch調(diào)用。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • vue-cli搭建項(xiàng)目 確保安裝了node與npm 再目標(biāo)文件夾下打開(kāi)終端 執(zhí)行cnpm i vue-cli -g...
    Akiko_秋子閱讀 3,357評(píng)論 1 22
  • 渲染函數(shù)和jsx 在vue中我們可以不用template來(lái)指定組件的模板,而是用render函數(shù)來(lái)創(chuàng)建虛擬dom結(jié)...
    6e5e50574d74閱讀 770評(píng)論 0 0
  • Vuejs技術(shù)棧知識(shí)點(diǎn)小結(jié) 閱讀目錄 前言 Vue vue-router vuex 前言 上家公司的項(xiàng)目主要是使用...
    yichen_china閱讀 943評(píng)論 0 0
  • 一:什么是閉包?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在本質(zhì)上,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 10,031評(píng)論 1 52
  • vuex 場(chǎng)景重現(xiàn):一個(gè)用戶在注冊(cè)頁(yè)面注冊(cè)了手機(jī)號(hào)碼,跳轉(zhuǎn)到登錄頁(yè)面也想拿到這個(gè)手機(jī)號(hào)碼,你可以通過(guò)vue的組件化...
    sunny519111閱讀 8,160評(píng)論 4 111

友情鏈接更多精彩內(nèi)容