当前位置:首页 > VUE

vue 实现豆瓣

2026-02-09 23:46:29VUE

以下是在 Vue 中实现豆瓣电影功能的主要方法和步骤:

环境准备

安装 Vue CLI 并创建项目
npm install -g @vue/cli
vue create douban-movie
安装 axios 用于 API 请求
npm install axios

豆瓣 API 配置

豆瓣开放 API 需要添加请求头
在 main.js 中设置默认请求头:

axios.defaults.headers.common['Content-Type'] = 'application/json'
axios.defaults.headers.common['Accept'] = 'application/json'

电影列表组件

创建 MovieList.vue 组件
使用 axios 获取正在热映的电影数据:

methods: {
  fetchMovies() {
    axios.get('https://api.douban.com/v2/movie/in_theaters')
      .then(response => {
        this.movies = response.data.subjects
      })
  }
}

电影详情组件

创建 MovieDetail.vue 组件
通过路由参数获取电影 ID:

created() {
  const id = this.$route.params.id
  axios.get(`https://api.douban.com/v2/movie/subject/${id}`)
    .then(response => {
      this.movie = response.data
    })
}

路由配置

在 router/index.js 中配置路由:

const routes = [
  {
    path: '/',
    name: 'MovieList',
    component: MovieList
  },
  {
    path: '/movie/:id',
    name: 'MovieDetail',
    component: MovieDetail
  }
]

样式设计

使用 CSS Flexbox 布局电影列表
为电影卡片添加悬停效果:

.movie-card {
  transition: transform 0.3s ease;
}
.movie-card:hover {
  transform: scale(1.05);
}

实现搜索功能

添加搜索组件 SearchBar.vue
使用豆瓣搜索 API:

searchMovies(query) {
  axios.get(`https://api.douban.com/v2/movie/search?q=${query}`)
    .then(response => {
      this.searchResults = response.data.subjects
    })
}

分页加载

实现滚动加载更多功能
监听滚动事件并触发 API 请求:

window.addEventListener('scroll', () => {
  if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
    this.loadMore()
  }
})

错误处理

添加全局错误处理拦截器
在 main.js 中配置:

axios.interceptors.response.use(
  response => response,
  error => {
    console.error('API Error:', error)
    return Promise.reject(error)
  }
)

部署上线

构建生产版本
npm run build
配置 Nginx 代理解决跨域问题
在 nginx.conf 中添加:

location /api {
  proxy_pass https://api.douban.com;
}

vue 实现豆瓣

标签: 豆瓣vue
分享给朋友:

相关文章

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、当当、天…

vue列表实现

vue列表实现

Vue 列表实现方法 使用 v-for 指令 v-for 是 Vue 中用于渲染列表的核心指令,基于数据源动态生成 DOM 元素。语法格式为 item in items 或 (item, index)…

vue实现oauth

vue实现oauth

Vue 实现 OAuth 的步骤 安装必要的依赖 确保项目中安装了 axios 和 vue-router。OAuth 通常需要发送 HTTP 请求和处理路由跳转。 npm install axio…

vue实现翻译

vue实现翻译

Vue 实现翻译功能的方法 使用 i18n 插件实现多语言切换 安装 vue-i18n 插件: npm install vue-i18n 创建语言资源文件(如 en.json 和 zh.json):…

vue tab实现

vue tab实现

Vue Tab 实现方法 使用动态组件实现 Tab 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现 Ta…

vue单选实现

vue单选实现

Vue 单选实现 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选效果。当用户选择不同的选…