当前位置:首页 > 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中实现卡片轮播可以通过结合v-for指令和动态样式绑定完成。核心是维护一个当前显示卡片的索引,通过CSS过渡效果实现平滑切换。 基础实现步骤 模板部分 使用v-for…

vue 实现弹幕

vue 实现弹幕

vue 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕包…

vue slot实现

vue slot实现

vue slot 的实现方法 在 Vue 中,slot 是一种内容分发机制,允许父组件向子组件传递模板内容。以下是几种常见的 slot 实现方式: 默认 slot 默认 slot 是最基础的 slo…

vue 实现工具

vue 实现工具

Vue 实现工具的方法 使用 Vue 实现工具功能可以通过多种方式完成,具体取决于工具的类型和需求。以下是几种常见的方法: 组件化实现 创建一个独立的 Vue 组件来封装工具功能。例如,实现一个计…

vue实现监听

vue实现监听

监听数据变化 在Vue中,可以通过watch选项或$watch方法监听数据的变化。watch适用于组件选项内声明式监听,$watch适用于动态监听。 // 选项式API export default…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…