Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ douban Public
forked from jeneser/douban

Awesome douban DEMO created with Vue2.x + Vuex + Vue-router + Superagent

License

Notifications You must be signed in to change notification settings

trkjoy/douban

Repository files navigation


Awesome douban DEMO created with Vue2.x + Vuex + Vue-router + Superagent

Build Status David Codacy Badge Powered Percentage of issues still open Average time to resolve an issue PR license





......
Live Demo

Features

  • Vue + vue-router + vuex + Superagent working together
  • Vuex divide store into modules
  • Modern JavaScript syntax with ES6
  • vue-cli webpack template
  • Single-file Vue Components
  • API request seperated
  • Real remote API and some mock data
  • eslint linter integration
  • Hot-reload in development
  • Css with Sass
  • No third party CSS framework
  • Complex and different style view logic
  • Infinite loading list
  • Complete search logic
  • Custom components like List, Rating, Tags ...
  • Authentication with JSON Web Tokens
  • Complete register login logic ......

Build Setup

# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build

For detailed explanation on how things work, checkout the guide and docs for vue-loader.

Libraries

  • Vuex : Centralized State Management for Vue.js
  • Vue-router : The official router for Vue.js
  • (削除) vue-resource : The HTTP client for Vue.js (削除ここまで)
  • Superagent : Ajax with less suck - (and node.js HTTP client to match)
  • vue-infinite-loading : An infinite scroll plugin for Vue.js 1.0 & Vue.js 2.0.
  • normalize.css : A collection of HTML element and attribute style-normalizations
  • vue-scroll-behavior : Completely customize the scroll behavior on route navigation

API

Douban Api V2

  • Basic URI : https://api.douban.com/V2/
  • Online activities
    • Activities list : /event/list?loc=108288&count=&start=
    • Single activitie info : /event/id
  • Movie
    • In theaters : /movie/in_theaters?count=
    • Coming soon : /movie/coming_soon?count=
    • Top 250 : /movie/top250?count=
    • Single movie info : /movie/subject/id
  • Book
    • Search some books : /book/search?q=&count=
    • Single book info : /book/id
  • Search
    • Search books : /book/search?q=
    • Search movie : /movie/search?q=
    • Search music : /music/search?q=

Mock Douban Backend

  • User Basic URI : https://douban.herokuapp.com/user/
  • Register
    • Path: /user
    • method: POST
  • Login
    • Path: /user/:id
    • method: GET

For detailed explanation, checkout the Douban Api V2 and Douban Backend

File Structure

.
├── build
│ ├── build.js
│ ├── check-versions.js
│ ├── dev-client.js
│ ├── dev-server.js
│ ├── utils.js
│ ├── vue-loader.conf.js
│ ├── webpack.base.conf.js
│ ├── webpack.dev.conf.js
│ └── webpack.prod.conf.js
├── config
│ ├── dev.env.js
│ ├── index.js
│ └── prod.env.js
├── index.html
├── LICENSE
├── package.json
├── README.md
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── avatar.png
│ │ ├── book_zw.jpg
│ │ ├── camera.svg
│ │ ├── douban-app-logo.png
│ │ ├── pen.svg
│ │ ├── promotion_bg.jpg
│ │ └── user_normal.jpg
│ ├── components
│ │ ├── Banner.vue
│ │ ├── Card.vue
│ │ ├── DownloadApp.vue
│ │ ├── Group.vue
│ │ ├── HeaderBar.vue
│ │ ├── List.vue
│ │ ├── Rating.vue
│ │ ├── Scroller.vue
│ │ ├── Marking.vue
│ │ ├── SubNav.vue
│ │ ├── Tags.vue
│ │ ├── Types.vue
│ │ └── UserBar.vue
│ ├── main.js
│ ├── router
│ │ └── index.js
│ ├── store
│ │ ├── index.js
│ │ └── modules
│ │ ├── activities.js
│ │ ├── book.js
│ │ ├── group.js
│ │ ├── movie.js
│ │ ├── search.js
│ │ ├── subject.js
│ │ └── user.js
│ └── views
│ ├── BookView.vue
│ ├── DetailView.vue
│ ├── GroupView.vue
│ ├── HomeView.vue
│ ├── LoginView.vue
│ ├── MovieView.vue
│ ├── PagesView.vue
│ ├── RegisterView.vue
│ ├── SearchView.vue
│ ├── StatusView.vue
│ ├── SubjectView.vue
│ └── TalionView.vue
└── static
 └── logo.png

Change log

  • Aug 24, 2017:
    • Merged PR #19
    • Remove dist/, use tschaub/gh-pages
  • Aug 11, 2017:
    • Add dir /screenshot.
    • Update README fix screenshot
  • June 24, 2017:
    • Update vue-scroll-behavior fix scroll behavior
  • May 28, 2017:
    • Using superagent

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

Thanks

License

MIT Copyright (c) 2017 Jeneser

About

Awesome douban DEMO created with Vue2.x + Vuex + Vue-router + Superagent

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vue 68.4%
  • JavaScript 31.2%
  • HTML 0.4%

AltStyle によって変換されたページ (->オリジナル) /