当前位置: 首页 > wzjs >正文

青青网站怎么做百度应用app下载

青青网站怎么做,百度应用app下载,阿里云服务器学生优惠,辽宁烟草电子商务网站组件封装 先进行组件的封装,因为每一次待发布已发布这些格式是一样的,所以封装一个NewsPublish组件 import React from react; import { Button,Table} from antd;function NewsPublish(props) {//父组件传属性const columns [{title: 新闻标题,dataI…

   组件封装

先进行组件的封装,因为每一次待发布已发布这些格式是一样的,所以封装一个NewsPublish组件

import React from 'react';
import { Button,Table} from 'antd';function NewsPublish(props) {//父组件传属性const columns = [{title: '新闻标题',dataIndex: 'title',render:(title,item)=>{return <a href={`#/news-manage/preview/${item.id}`}>{title}</a>}},{title: '作者',dataIndex: 'author',},{title: '新闻分类',dataIndex: 'category',render:(category)=>{return  <div>{category.title}</div>}},{title: '操作',render:(record)=>{return <div><Button/></div>}},];return (<div><Table dataSource={props.dataSource} columns={columns} pagination={{//一页显示几条数据pageSize:5}}rowKey={item=>item.id}/></div>);
}export default NewsPublish;

需要使用的时候调用就好了

import React, { useEffect } from 'react'
import { useState } from 'react'
import NewsPublish from '../../../components/publish-manage/NewsPublish'
import axios from 'axios'export default function Published() {const {username} = JSON.parse(localStorage.getItem('token'))const [dataSource,setDataSource] = useState([])useEffect(() => {axios(`/news?author=${username}&publishState=2&_expand=category`).then(res=>{setDataSource(res.data)})},[username])return (<div><NewsPublish dataSource={dataSource}></NewsPublish></div>)
}

在这里不论是待发布还是已发布,区别就只有筛选的时候状态是1还是2

所以使用自定义hooks简化一下代码

自定义hooks

自定义hooks方便进行代码的复用,状态可以直接传一个参数给自定义hooks,这样就可以复用了,传id的目的是要知道具体要增删哪条数据

import React,{ useEffect,useState } from 'react'
import axios from 'axios'function usePublish(type) {//   不是组件,是自定义hooksconst { username } = JSON.parse(localStorage.getItem('token'))const [dataSource, setDataSource] = useState([])useEffect(() => {axios(`/news?author=${username}&publishState=${type}&_expand=category`).then((res) => {setDataSource(res.data)})}, [username,type])const handlePublish = (id)=>{console.log(id)}const handleSunset = (id)=>{}const handleDelete = (id)=>{}return{dataSource,handlePublish,handleSunset,handleDelete,}
}export default usePublish
import React, { useEffect } from 'react'
import NewsPublish from '../../../components/publish-manage/NewsPublish'
import usePublish from '../../../components/publish-manage/usePublish'
import { Button } from 'antd'export default function Sunset() {const {dataSource,handleSunset} = usePublish(3)return (<div><NewsPublish dataSource={dataSource} button={(id)=><Button danger onClick={()=>handleSunset(id)}>删除</Button>}></NewsPublish></div>)
}

实现方法

实现点击的时候调用的方法,每一个都不一样

import React, { useEffect, useState } from 'react'
import axios from 'axios'
import { notification } from 'antd'
import { useNavigate } from 'react-router-dom'function usePublish(type) {//   不是组件,是自定义hooksconst { username } = JSON.parse(localStorage.getItem('token'))const navigate = useNavigate()const [dataSource, setDataSource] = useState([])useEffect(() => {axios(`/news?author=${username}&publishState=${type}&_expand=category`).then((res) => {setDataSource(res.data)})}, [username, type])const handlePublish = (id) => {setDataSource(dataSource.filter((item) => item.id !== id))axios.patch(`/news/${id}`, {"publishState": 2,"publishTime": Date.now(),}).then((res) => {navigate('/publish-manage/published')notification.info({message:`通知`,description:`您可以到[发布管理/已发布]中查看您的新闻`,placement: 'bottomRight',})}) }const handleSunset = (id) => {setDataSource(dataSource.filter((item) => item.id !== id))axios.patch(`/news/${id}`, {"publishState": 3,"publishTime": Date.now(),}).then((res) => {navigate('/publish-manage/sunset')notification.info({message:`通知`,description:`您可以到[发布管理/已下线]中查看您的新闻`,placement: 'bottomRight',})}) }const handleDelete = (id) => {setDataSource(dataSource.filter((item) => item.id !== id))axios.delete(`/news/${id}`).then((res) => {notification.info({message:`通知`,description:`您已经删除了已下线的新闻`,placement: 'bottomRight',})}) }return {dataSource,handlePublish,handleSunset,handleDelete,}
}export default usePublish
import React, { useEffect } from 'react'
import NewsPublish from '../../../components/publish-manage/NewsPublish'
import usePublish from '../../../components/publish-manage/usePublish'
import { Button } from 'antd'export default function Sunset() {const {dataSource,handleDelete} = usePublish(3)return (<div><NewsPublish dataSource={dataSource} button={(id)=><Button danger onClick={()=>handleDelete(id)}>删除</Button>}></NewsPublish></div>)
}

就这样

http://www.dtcms.com/wzjs/40251.html

相关文章:

  • 怎么做网站营销百度一下百度百科
  • 商城网站风格南宁百度推广排名优化
  • 手机怎么打开禁止访问的网站网络推广渠道排名
  • 做建筑设计的网站推荐美国疫情最新情况
  • 屏南网站建设兼职新网站友链
  • 网站建设和成本2023年的新闻十条
  • 怎样做网站测试百度天眼查公司
  • 重庆市建设政务中心网站2345手机浏览器
  • 网站开发设计心得百度关键词购买
  • 太原网站建设-中国互联推广公司简介
  • 上饶网站网站建设域名权重查询工具
  • 做网站的图片传进去很模糊百度页面
  • 湖南住房和建设厅网站代运营公司可靠吗
  • 网站开发的技术支撑 经验能力十大搜索引擎入口
  • 哈尔滨网站建设2017商品热搜词排行榜
  • 国内网站建设联系电话网络运营工作内容
  • 网站设计制作哪些seo点击排名
  • php 调用其他网站杭州百度seo
  • 沈阳公司做网站郑州seo全网营销
  • wordpress 中文 相册插件下载百度词条优化工作
  • 北京金企鹅网站建设方案百度搜索
  • 毕节做网站吴江网站制作
  • 做课件的网站有哪些网络营销考试题目及答案2022
  • 做网站的价位模板建站哪里有
  • 濮阳门户网站开发网游推广员
  • 长沙制作手机网站网站设计的流程
  • 做关键词搜索的网站上海优化外包
  • 内容不相关的网站做301重定向百度seo搜搜
  • 网站开发维护报价单长春网络优化哪个公司在做
  • 织梦网站如何做地区分站代写1000字多少钱