摘要:從之前黃軼老師的高仿外賣開始接觸過這個(gè)滾動(dòng)庫,感覺體驗(yàn)感很好,用起來也比較順手,所以在后來的項(xiàng)目聯(lián)系中就一直在使用。
前言
雖然在此之前已經(jīng)有類似的仿豆瓣電影的webapp,但或是開發(fā)的有些簡(jiǎn)潔功能不太完善,或是體驗(yàn)感覺得可以再完善下,所以自己摸索著對(duì)比豆瓣和豆瓣電影兩款app做了一下,初步滿足了自己的想法,經(jīng)過幾次完善基本不會(huì)出現(xiàn)bug,如果發(fā)現(xiàn)存在問題請(qǐng)告訴我修改,謝謝!
2017/7/27 一點(diǎn)小更新:發(fā)現(xiàn)只有建軍大業(yè)這部電影的詳情無法查看,原因是這部電影豆瓣返回的電影id存在問題,導(dǎo)致服務(wù)器返回 movie_not_found,點(diǎn)了這部電影發(fā)現(xiàn)報(bào)錯(cuò)了整個(gè)人都不好了,解決方案就是看豆瓣會(huì)不會(huì)修復(fù)這個(gè)問題 :(
項(xiàng)目簡(jiǎn)介使用vue2.0仿豆瓣電影app,根據(jù)豆瓣電影api對(duì)功能作了適當(dāng)修改
api來源自豆瓣官方api,詳情請(qǐng)戳豆瓣電影api
項(xiàng)目源碼:請(qǐng)戳 github
線上體驗(yàn) PC訪問求star,如果對(duì)您有幫助,可以在github上點(diǎn)右上角 "Star" 支持一下 謝謝! ^_^
豆瓣電影webapp
打開瀏覽器進(jìn)入開發(fā)者模式,選擇移動(dòng)端視口
chrome瀏覽器下的iphone5/6/6 plus體驗(yàn)效果更佳
移動(dòng)端訪問打開手機(jī)瀏覽器掃描下方二維碼或訪問上面的地址,推薦全屏模式下體驗(yàn)
項(xiàng)目運(yùn)行clone項(xiàng)目源碼
git clone https://github.com/buptsky/vue-douban-movie.git
安裝依賴
cd vue-douban-movie npm install
運(yùn)行
npm run dev
打開瀏覽器進(jìn)入localhost:8000,在開發(fā)者工具的移動(dòng)端模式下查看效果
運(yùn)行環(huán)境node 6+ npm 4+
部分效果演示 上映電影信息和電影詳情vue2.0 + vue-router + vuex:vue全家桶
axios:用于ajax請(qǐng)求
vue-lazyload:用于圖片懶加載
better-scroll:移動(dòng)端滾動(dòng)庫,優(yōu)化移動(dòng)端滾動(dòng)效果
webpack: 構(gòu)建工具
es6: 使用es6語法
stylus: css預(yù)處理
使用flex布局進(jìn)行移動(dòng)端適配,用eslint進(jìn)行代碼規(guī)范檢查
使用localStorage存儲(chǔ)收藏的電影信息,影人信息,評(píng)論點(diǎn)贊信息
webpack + webpack-dev-server + http-proxy-middleware進(jìn)行本地開發(fā)環(huán)境http請(qǐng)求轉(zhuǎn)發(fā),實(shí)現(xiàn)跨域請(qǐng)求
線上使用express的http-proxy-middleware實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)
功能實(shí)現(xiàn) 上映電影部分獲取正在上映的電影信息和即將上映電影的信息
電影信息滾動(dòng)(底部)加載提高響應(yīng)速度
排行部分獲取所有可以從豆瓣api得到的排行榜
查看排行榜詳細(xì),在排行榜中查看具體電影詳細(xì)
搜索部分支持用戶根據(jù)關(guān)鍵字搜索
支持用戶根據(jù)給出標(biāo)簽進(jìn)行標(biāo)簽搜索(與輸入與標(biāo)簽相同的關(guān)鍵字進(jìn)行搜索不同)
根據(jù)搜索結(jié)果查看電影詳情
查看搜索歷史
電影詳情部分獲取電影所有的基礎(chǔ)信息和評(píng)分信息
獲取電影的短評(píng)和長(zhǎng)評(píng),可查看該電影所有短評(píng)長(zhǎng)評(píng)
將電影標(biāo)記為想看/看過
影人信息部分獲取影人基本信息
查看影人作品詳細(xì)
用戶中心部分查看收藏的影人
查看想看的電影
查看看過的電影
關(guān)于瀏覽器跨域 開發(fā)環(huán)境項(xiàng)目通過vue腳手架vue-cli進(jìn)行配置,可在"config/index"目錄下進(jìn)行如下配置
proxyTable: { "/v2": { target: "http://api.douban.com", changeOrigin: true, pathRewrite: { "^/v2": "/v2" } } }
參數(shù)里中的changeOrigin,接收一個(gè)布爾值,如果設(shè)置為true,那么本地會(huì)虛擬一個(gè)服務(wù)端接收你的請(qǐng)求并代你發(fā)送該請(qǐng)求,這樣就不會(huì)有跨域問題了
vue-cli的這個(gè)設(shè)置來自于其使用的插件http-proxy-middleware
服務(wù)器端配置
const express = require("express"); const proxy = require("http-proxy-middleware"); const app = express(); app.use("/static", express.static(`${__dirname}/static`)); app.use("/v2", proxy({ target: "http://api.douban.com", changeOrigin: true, })); app.get("/*", (req, res) => { res.sendFile(`${__dirname}/index.html`); }); app.listen(8000);
本質(zhì)上都是通過使用"http-proxy-middleware"中間件實(shí)現(xiàn)代理
關(guān)于移動(dòng)端滾動(dòng)庫better-scrollbetter-scroll 是一個(gè)移動(dòng)端滾動(dòng)的解決方案,它是基于 iscroll 的重寫,它和 iscroll 的主要區(qū)別在這里。better-scroll 也很強(qiáng)大,不僅可以做普通的滾動(dòng)列表,還可以做輪播圖、picker 等等。
從之前黃軼老師的高仿elem外賣app開始接觸過這個(gè)滾動(dòng)庫,感覺體驗(yàn)感很好,用起來也比較順手,所以在后來的項(xiàng)目聯(lián)系中就一直在使用。
推薦大家也嘗試一下:)
滾動(dòng)的原理時(shí)父容器有固定的高度。父容器的第一個(gè)子元素,它的高度會(huì)隨著內(nèi)容的大小而撐高。當(dāng)內(nèi)容的高度不超過父容器的高度,是不能滾動(dòng)的,而它一旦超過了父容器的高度,我們就可以滾動(dòng)內(nèi)容區(qū)了,這就是better-scroll 的滾動(dòng)原理。
可以通過黃軼老師的這篇文章具體了解下:當(dāng) better-scroll 遇見 Vue
better-scroll的github地址戳:better-scroll
項(xiàng)目布局如果您不想在項(xiàng)目中使用better-scroll,也可以將相關(guān)代碼進(jìn)行替換,如取消一些為了實(shí)現(xiàn)scroll組件使用的css的絕對(duì)/固定定位,頁面的滾動(dòng)的數(shù)據(jù)獲取采用原生方式獲取或使用其他庫等,重構(gòu)成本不會(huì)很大。
├─build // webpack配置文件 ├─config // 項(xiàng)目開發(fā)環(huán)境配置相關(guān)代碼 ├─screenshots // 項(xiàng)目截圖 ├─src // 源碼目錄 │ ├─api ? ? ? ? ? ? ? ? ? ? // axios請(qǐng)求,獲取項(xiàng)目數(shù)據(jù) │ ├─base ? ? ? ? ? ? ? ? ? ? // 項(xiàng)目基礎(chǔ)組件 │ │ ├─confirm ? ? ? ? ? ? ? // 確認(rèn)框組件 │ │ ├─history-list ? ? ? ? // 歷史記錄列表組件 │ │ ├─loading ? ? ? ? ? ? ? // 初始加載過渡組件 │ │ ├─loadmore ? ? ? ? ? ? // 加載更多組件 │ │ ├─scroll ? ? ? ? ? ? ? // 頁面滾動(dòng)組件 │ │ ├─search-box ? ? ? ? ? // 搜索框組件 │ │ ├─star ? ? ? ? ? ? ? ? // 星級(jí)評(píng)分組件 │ │ └─switches ? ? ? ? ? ? // 選項(xiàng)卡組件 │ ├─common ? ? ? ? ? ? ? ? ? // 公共資源 │ │ ├─fonts ? ? ? ? ? ? ? ? // 圖標(biāo)字體 │ │ ├─image ? ? ? ? ? ? ? ? // 圖片資源 │ │ ├─js ? ? ? ? ? ? ? ? ? // 公共方法 │ │ └─stylus ? ? ? ? ? ? ? // css樣式 │ ├─components ? ? ? ? ? ? ? // 業(yè)務(wù)組件 │ │ ├─all-discussion ? ? ? // 全部評(píng)論組件 │ │ ├─celebrity-detail ? ? // 影人詳情組件 │ │ ├─celebrity-info ? ? ? // 影人基礎(chǔ)信息組件 │ │ ├─celebrity-list ? ? ? // 影人列表組件 │ │ ├─celebrity-works ? ? ? // 影人作品組件 │ │ ├─movie-comment ? ? ? ? // 電影短評(píng)組件 │ │ ├─movie-detail ? ? ? ? // 電影詳情組件 │ │ ├─movie-info ? ? ? ? ? // 電影基礎(chǔ)信息組件 │ │ ├─movie-list ? ? ? ? ? // 電影列表組件 │ │ ├─movie-review ? ? ? ? // 電影長(zhǎng)評(píng)組件 │ │ ├─movie-show ? ? ? ? ? // 主頁上映電影組件 │ │ ├─rank ? ? ? ? ? ? ? ? // 排行組件 │ │ ├─rank-detail ? ? ? ? ? // 排行詳情組件 │ │ ├─rank-list ? ? ? ? ? ? // 排行列表組件 │ │ ├─review-detail ? ? ? ? // 電影長(zhǎng)評(píng)詳情組件 │ │ ├─search ? ? ? ? ? ? ? // 電影搜索組件 │ │ ├─suggest ? ? ? ? ? ? ? // 搜索結(jié)果組件 │ │ ├─tab ? ? ? ? ? ? ? ? ? // 主頁tab欄組件 │ │ └─user-center ? ? ? ? ? // 用戶中心組件 │ ├─router ? ? ? ? ? ? ? ? ? // vue-router路由管理 │ └─store ? ? ? ? ? ? ? ? ? // vuex狀態(tài)管理 └─staticTip
在config文件下的webpack.base.conf.js 里我配置了一些別名方便組件引入
resolve: { extensions: [".js", ".vue", ".json"], alias: { // 配置別名 "src": resolve("src"), "common": resolve("src/common"), "components": resolve("src/components"), "base": resolve("src/base") } }
所以在引入組件的時(shí)候沒有加相對(duì)路徑,如不想更改直接使用相對(duì)路徑找到引用的文件就好了,這里說一下避免出現(xiàn)問題浪費(fèi)不必要的時(shí)間
最后編輯于 2017/7/28 22:52
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/84234.html
摘要:前言一直想做一個(gè)系統(tǒng)性的項(xiàng)目,后來看到豆瓣有個(gè)開源的,所以我就模仿豆瓣的電影顯示界面做了幾個(gè)界面,目前還在持續(xù)的開發(fā)中,本人是個(gè)小白請(qǐng)各位大大指教呀使用的技術(shù)棧后面打算把換成現(xiàn)在正在了解相關(guān)的知識(shí)。。。。 前言 一直想做一個(gè)系統(tǒng)性的項(xiàng)目,后來看到豆瓣有個(gè)開源的api,所以我就模仿豆瓣的電影顯示界面做了幾個(gè)界面,目前還在持續(xù)的開發(fā)中,本人是個(gè)小白~請(qǐng)各位大大指教呀 使用的技術(shù)棧 vue ...
摘要:很多小伙伴練手都會(huì)去仿寫豆瓣電影或者網(wǎng)易云音樂,所以,這回干脆把兩個(gè)集合起來,具體長(zhǎng)什么樣,請(qǐng)各位看預(yù)覽或下面圖片啦。怎么折騰法呢比如豆瓣部分我使用了,網(wǎng)易云部分則沒有,網(wǎng)易的組件則是自己造的輪子,當(dāng)然在實(shí)際開發(fā)中肯定不會(huì)這么搞啦。。 很多小伙伴練手都會(huì)去仿寫豆瓣電影或者網(wǎng)易云音樂,所以,這回干脆把兩個(gè)集合起來,具體長(zhǎng)什么樣,請(qǐng)各位看預(yù)覽或下面圖片啦。 目的: 做這個(gè)項(xiàng)目最主要的目的是...
摘要:前言本文的前身是源自上的項(xiàng)目但由于該項(xiàng)目上次更新時(shí)間為年月日,很多內(nèi)容早已過期或是很多近期優(yōu)秀組件未被收錄,所以小肆今天重新更新了內(nèi)容并新建項(xiàng)目。提交的項(xiàng)目格式如下項(xiàng)目名稱子標(biāo)題相關(guān)介紹如果收錄的項(xiàng)目有錯(cuò)誤,可以通過反饋給小肆。 前言 本文的前身是源自github上的項(xiàng)目awesome-github-vue,但由于該項(xiàng)目上次更新時(shí)間為2017年6月12日,很多內(nèi)容早已過期或是很多近期優(yōu)...
awesome-github-wechat-weapp 是由OpenDigg整理并維護(hù)的微信小程序開源項(xiàng)目庫集合。我們會(huì)定期同步上的項(xiàng)目到這里,也歡迎各位 UI組件開發(fā)框架實(shí)用庫開發(fā)工具服務(wù)端項(xiàng)目實(shí)例Demo UI組件 weui-wxss ★1873 - 同微信原生視覺體驗(yàn)一致的基礎(chǔ)樣式庫zanui-weapp ★794 - 好用易擴(kuò)展的小程序 UI 庫wx-charts ★449 - 微信小程...
閱讀 892·2021-11-22 15:25
閱讀 1526·2021-09-08 09:45
閱讀 1839·2021-09-02 09:46
閱讀 1428·2019-08-30 15:56
閱讀 1592·2019-08-29 15:14
閱讀 1223·2019-08-29 13:06
閱讀 2067·2019-08-29 12:34
閱讀 1460·2019-08-26 12:14