首页 > 其他分享 >react豆瓣API获取电影数据小demo

react豆瓣API获取电影数据小demo

时间:2023-02-14 15:32:28浏览次数:57  
标签:demo 电影 react 获取 state API 组件 fetch 路由


react豆瓣API获取电影数据小demo_npm


entd使用

使用entd的layout布局快速搭建页面

​entd官网​​ 页面刷新,路由不刷新,设置sider和路由同步,在componentWillMount还是componentDidMount都获取不到路由信息,但是能获取window.location,

利用window.location获取路由信息,同步sider选中框

请求豆瓣数据

API使用参考

react可以用原生的fetch请求,如果跨域可以用fetch-jsonp获取所需数据

cnpm i fetch-jsonp -S

使用:

import fetchJSONP from 'fetch-jsonp'

let url = `https://douban.uieee.com/v2/movie/${this.state.type}?start=${(this.state.nowPage - 1) * this.state.pageSize}&count=${this.state.pageSize}`

fetchJSONP(url)
.then((res) => res.json())
.then((res) => {
something...
})
.catch((err) => console.log(err))

数据加载动画,使用antd的Spin

//按需引入
import { Spin, Pagination } from 'antd'
//使用
<Spin
style={{ display: 'block', margin: '0.6rem auto' }}
size="large"
tip="Loading..."
></Spin>

react豆瓣API获取电影数据小demo_css3_02

电影数据下面的分页使用antd的Pagination

react豆瓣API获取电影数据小demo_css3_03

同样使用方式
点击电影照片,跳转到对应详情组件,这里因为根据电影id获取数据的api不好用,获取数据方式变成了,在父组件定义一个方法和一个接收数据的变量,把这个方法传递到电影列表组件,点击一个电影卡片,就出发这个方法,这个方法把点击的电影的信息传给父组件上面接收信息的变量,然后把这个变量传递给电影详情组件,这样也可以实现,点击哪个电影,就获取哪个电影的信息,将这个信息传递给它的兄弟组件展示详情信息
组件传值
正常组件只需要在组件的标签上书写就可以实现

<Movie name="name"></Movie>

使用路由展示的组件的上面这样写不生效,可以换一种写法

<Route path="/movie/:type/:page" render={()=>(
<MovieList getDetailed={this.getDetailed}></MovieList>
)}></Route>

不过这样写有一个缺陷,就是在组件内部获取this.props时获取不到路由信息,路由的对应参数可以通过window.location.hash来获取
代码:​​​GitHub下载​


标签:demo,电影,react,获取,state,API,组件,fetch,路由
From: https://blog.51cto.com/u_15964288/6056985

相关文章

  • Jest + React 单元测试最佳实践
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。前言单元测试是一种用于测试“单元”的......
  • 【前端】microApp微前端搭建简单Demo
    创建项目第一步,创建项目,分别创建base_app(主基座)、a_app(子项目1)配置主基座项目Main.js中引入@Micro-zoe/micro-app//main.jsimportmicroappfrom'@micro-zoe/mic......
  • 关于工具软件:Apipost和Apifox哪个更好用看这篇就够了
    很多人搞不清楚Apipost和Apifox到底有什么区别,以下为实际体验,各位能够依据本身状况参考一下,有什么不足之处还请各位大佬多多指教。一、产品定位这块能够间接看他们的官......
  • 微信接入ChatGPT API 我的微信就是ChatGPT AI人工智能
      目录一、登陆OpenAI官网登录你的账号,获取APIkey二、Wechat-Chatgpt项目三、开始配置服务器修改配置文件这只是一个教学视频,至于大家关心的微信会......
  • 淘宝店铺订单API接口同步方案,参考值说明
    ​获取卖家店铺订单背景:订单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于API请求依赖于网络,存......
  • java根据地址获取百度API经纬度
    java根据地址获取百度API经纬度(详细文档)1publicvoidgetLarLng(Stringaddress)throwsException{23Stringak="vZ5wAkH9uc6mCnrhtYWey2fBHBmU9Rh......
  • react typescript封装函数式组件styled-component
    interfaceIButton{margin?:boolean;width?:string;justify?:JustifyContentProps;}constButton=styled.button<IButton>`.....`;interfaceILoadButtonext......
  • 前端二面经典react面试题
    如何解决props层级过深的问题使用ContextAPI:提供一种组件之间的状态共享,而不必通过显式组件树逐层传递props;使用Redux等状态库。react实现一个全局的dialogimpo......
  • 问:你是如何进行react状态管理方案选择的?
    前言:最近接触到一种新的(对我个人而言)状态管理方式,它没有采用现有的开源库,如redux、mobx等,也没有使用传统的useContext,而是用useState+useEffect写了一个发布订阅者模式进......
  • 京东前端react面试题及答案
    useEffect与useLayoutEffect的区别(1)共同点运用效果:useEffect与useLayoutEffect两者都是用于处理副作用,这些副作用包括改变DOM、设置订阅、操作定时器等。在函数......