最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue仿今日頭條實(shí)例詳解

 更新時(shí)間:2018年02月06日 08:43:59   投稿:laozhang  
這篇文章主要介紹了Vue仿今日頭條實(shí)例詳解,并把相關(guān)代碼做了說(shuō)明,對(duì)此有興趣的朋友參考下吧。

前言

vue也弄了一段時(shí)間了, 前段時(shí)間一直想用vue寫(xiě)個(gè)移動(dòng)端,加之年底也不是很忙,于是前幾天便著手開(kāi)始弄了,到今天為止也算是勉強(qiáng)能看了

因?yàn)橐彩羌兇獾膶?xiě)寫(xiě)前端頁(yè)面,所以數(shù)據(jù)方面用的是mock.js,為了真實(shí)的模擬請(qǐng)求,可以直接在 Easy Mock 自己生成API
也可直接登陸我這項(xiàng)目的Easy Mock賬號(hào)密碼:

賬號(hào): vue-toutiao
密碼: 123456

如果你想修改接口,請(qǐng)copy一份在修改

如果你想后臺(tái)接口也自己開(kāi)發(fā)的話??梢蚤喿x我這篇博客 Vue + Node + Mongodb 開(kāi)發(fā)一個(gè)完整博客流程

技術(shù)棧:

vue + webpack + vuex + axios

結(jié)構(gòu):

  • build: webpack配置
  • config: 項(xiàng)目配置參數(shù)
  • src
  • assets: 靜態(tài)資源文件,存放圖片啥的
  • components: 常用組件。例如 彈窗 等等。。。
  • directive: 常用指令封裝
  • router: 路由表
  • store: 狀態(tài)管理 vuex
  • styles: 樣式文件
  • utils: 常用工具類(lèi)封裝
  • views: 視圖頁(yè)面
  • static: 靜態(tài)文件: 存放 favicon.ico 等等
  • 此項(xiàng)目用到了 DllPlugin 進(jìn)行打包處理,所有啟動(dòng)該項(xiàng)目時(shí)記得,先執(zhí)行一次該腳本命令生成配置

效果演示:

幾個(gè)常用的知識(shí)點(diǎn)

1. 路由懶加載

{
  path: '/development',
  name: 'development',
  component: (resolve) => {
    require(['../views/development.vue'], resolve)
  }
}

const _import_ = file => () => import('views/' + file + '.vue')

{
  path: '/development',
  name: 'development',
  component: _import_('development')
}

2. 登陸攔截

通過(guò)路由的 beforeEach 鉤子函數(shù)來(lái)判斷是否需要登陸

// 如:系統(tǒng)設(shè)置需要登陸
{ 
  path: '/system', 
  name: '系統(tǒng)設(shè)置', 
  meta: { 
    login: true
  },
  component: _import_('System/index')
}

router.beforeEach((to, from, next) => {
  if (to.meta.login) { //判斷前往的界面是否需要登陸
    if (store.state.user.user.name) { // 是否已經(jīng)登陸
      next()
    }else{
      Vue.prototype.$alert('請(qǐng)先登錄!')
        .then( () => {
          store.state.user.isLogin = true
        })
    }
  }else{
    if (to.meta.page) store.state.app.pageLoading = true
    next() 
  }
  
})

3. 動(dòng)畫(huà)切換

通過(guò)檢測(cè)設(shè)置在 Router上的animate屬性 來(lái)判斷它做什么樣的切換動(dòng)畫(huà)

Router.prototype.animate = 0

// 獲取每個(gè)路由meta上面的slide 來(lái)判斷它做什么動(dòng)畫(huà)
{ 
  path: '/system', 
  name: '系統(tǒng)設(shè)置', 
  meta: { 
    slide: 1 
  },
  component: _import_('System/index')
}


watch: {
  $route (to, from) {
    /*
    0: 不做動(dòng)畫(huà)
    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
  }
}

4. 視頻播放

因?yàn)樵贗OS上 無(wú)法隱藏video的controls ,所以我們可以隱藏video,通過(guò)繪制canvas來(lái)達(dá)到播放視頻的效果

5. icon采用的是 阿里巴巴矢量圖

6. mock.js

7. Easy Mock

代碼實(shí)例:https://github.com/cd-dongzi/vue-project/tree/master/vue-toutiao

相關(guān)文章

  • 解決vue-router 嵌套路由沒(méi)反應(yīng)的問(wèn)題

    解決vue-router 嵌套路由沒(méi)反應(yīng)的問(wèn)題

    這篇文章主要介紹了解決vue-router 嵌套路由沒(méi)反應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • vue2結(jié)合element-ui的gantt圖實(shí)現(xiàn)可拖拽甘特圖

    vue2結(jié)合element-ui的gantt圖實(shí)現(xiàn)可拖拽甘特圖

    因?yàn)楣ぷ髦幸玫礁侍貓D,所以我在網(wǎng)上搜索可以用的甘特圖,搜索了好多,但是網(wǎng)上搜到大多數(shù)都很雞肋,不能直接使用,下面這篇文章主要給大家介紹了關(guān)于vue2結(jié)合element-ui的gantt圖實(shí)現(xiàn)可拖拽甘特圖的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • vue-treeselect無(wú)法點(diǎn)擊問(wèn)題(點(diǎn)擊無(wú)法出現(xiàn)拉下菜單)

    vue-treeselect無(wú)法點(diǎn)擊問(wèn)題(點(diǎn)擊無(wú)法出現(xiàn)拉下菜單)

    這篇文章主要介紹了vue-treeselect無(wú)法點(diǎn)擊問(wèn)題(點(diǎn)擊無(wú)法出現(xiàn)拉下菜單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vite的搭建與使用的詳細(xì)步驟

    vite的搭建與使用的詳細(xì)步驟

    本文主要介紹了vite的搭建與使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Electron-store本地存儲(chǔ)功能用法詳解

    Electron-store本地存儲(chǔ)功能用法詳解

    這篇文章主要為大家介紹了Electron-store本地存儲(chǔ)功能的用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Element-UI結(jié)合遞歸組件實(shí)現(xiàn)后臺(tái)管理系統(tǒng)左側(cè)菜單

    Element-UI結(jié)合遞歸組件實(shí)現(xiàn)后臺(tái)管理系統(tǒng)左側(cè)菜單

    在Vue.js中使用遞歸組件可以方便地構(gòu)建多層級(jí)的菜單結(jié)構(gòu),遞歸組件適用于處理具有嵌套關(guān)系的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • vue :src 文件路徑錯(cuò)誤問(wèn)題的解決方法

    vue :src 文件路徑錯(cuò)誤問(wèn)題的解決方法

    這篇文章主要介紹了vue :src 文件路徑錯(cuò)誤問(wèn)題的簡(jiǎn)單解決方法,本文分步驟給大家介紹的非常詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 詳解Vue3如何加載動(dòng)態(tài)菜單

    詳解Vue3如何加載動(dòng)態(tài)菜單

    這篇文章主要為大家詳細(xì)介紹了Vue3是如何實(shí)現(xiàn)加載動(dòng)態(tài)菜單功能的,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定幫助,需要的可以參考一下
    2022-07-07
  • Vue中計(jì)算屬性未生效:原因、排查與解決過(guò)程

    Vue中計(jì)算屬性未生效:原因、排查與解決過(guò)程

    本文將深入探討計(jì)算屬性未生效的常見(jiàn)原因,并提供排查和解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 詳解element上傳組件before-remove鉤子問(wèn)題解決

    詳解element上傳組件before-remove鉤子問(wèn)題解決

    這篇文章主要介紹了詳解element上傳組件before-remove鉤子問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論

洪雅县| 宁强县| 扎兰屯市| 双辽市| 宁陵县| 长沙县| 阳朔县| 安国市| 绥棱县| 宜城市| 平邑县| 漳平市| 徐闻县| 云安县| 当涂县| 昆明市| 德阳市| 抚州市| 景泰县| 承德市| 桦甸市| 永寿县| 昂仁县| 宁远县| 双辽市| 深水埗区| 赤峰市| 四川省| 丽水市| 故城县| 黄平县| 景德镇市| 海丰县| 维西| 玉溪市| 正蓝旗| 廉江市| 呼图壁县| 高台县| 博白县| 西吉县|