当前位置:首页 > 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:

vue 实现豆瓣

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:

vue 实现豆瓣

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 的全局事件总线 在 Vue 中可以通过事件总线实现通知功能。创建一个全局事件总线,然…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signature_p…

vue 实现搜索

vue 实现搜索

实现 Vue 搜索功能 在 Vue 中实现搜索功能通常涉及以下几个关键步骤: 数据绑定与输入监听 使用 v-model 双向绑定搜索输入框的值,监听用户输入: <template>…

vue实现treeview

vue实现treeview

Vue 实现 TreeView 的方法 使用递归组件实现 TreeView 递归组件是 Vue 中实现 TreeView 的常见方式。通过组件调用自身,可以轻松处理嵌套的树形结构数据。 <te…

vue实现验证

vue实现验证

Vue 表单验证实现方法 在Vue中实现表单验证可以通过多种方式完成,以下是常见的几种方法: 使用Vuelidate库 Vuelidate是一个轻量级的Vue表单验证库,安装后可以通过简单的配置实现…

vue实现刷新

vue实现刷新

Vue 实现页面刷新的方法 在Vue中实现页面刷新可以通过多种方式,以下是几种常见的方法: 使用 window.location.reload() 通过调用浏览器的原生方法强制刷新当前页面:…