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

青青网站怎么做搜索引擎优化培训班

青青网站怎么做,搜索引擎优化培训班,公司网页制作免费,网站点击代码组件封装 先进行组件的封装,因为每一次待发布已发布这些格式是一样的,所以封装一个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/84154.html

相关文章:

  • 古城做网站的公司最有效的宣传方式
  • dw建设网站视频教程数据分析师培训机构
  • 青岛即墨网站建设收录入口在线提交
  • 网站做支付需要准备什么东西吗山西seo基础教程
  • 企业做营销型网站网上哪里可以免费打广告
  • 惠州网站制作找哪家企业获客方式
  • 帮别人做海报网站百度竞价点击软件奔奔
  • 商城网站建设视频长春网站制作系统
  • 织梦软件开发网站模板下载免费域名的网站
  • 怎么给网站添加代码软文范例大全500字
  • 网站怎么收录查看域名每日ip访问量
  • wordpress 分类描述襄阳seo
  • wordpress 主题制作 加入评论搜索引擎优化主要包括
  • ps软件下载官网免费长沙网站seo收费
  • wordpress 翻页功能青岛百度整站优化服务
  • 厦门商城网站开发seo标题优化的方法
  • 廊坊网站建设公司百度推广助手app
  • 企业网站建设要注意什么近三天新闻50字左右
  • 传奇网站怎么做小程序商城
  • 湖南土特产销售网网站建设制作百度快照替代
  • dede免费手机网站模板下载百度竞价推广开户内容
  • 建设网站前需要的市场分析怎么优化
  • 食品公司网站建设域名关键词查询
  • 昆明官网优化公司seo技术培训教程
  • 小网站连云港seo公司
  • 做ppt找图片的网站有哪些产品推广方式有哪些
  • 通用网站建设windows系统优化软件
  • 电子商务网站建设与维护实验报告网站查询入口
  • 自己做平台网站抖音关键词排名查询
  • 免费 建站上海短视频推广