初识react(16)—— 如何动态渲染 标题title 关键字 描述

一、首先在index.html中写如下代码(在用脚手架搭建react项目时,index.html文件已有 titlename值为descriptionmeta这两部分的代码,所以可以再添加个 关键字的 meta):
<meta
      name="description"
      content="description"
    />
    <meta
            name="keyWord"
            content="keyWord"
    />
    <title>我是标题</title>
二、发送请求获取动态 title 关键字 描述:
const set = async () => {
   const res = await http.get('/xxx/xxx', '');//单引号里填入自己的接口
   console.log(res);
};
这里我是将代码写在了入口文件 index.js里,我是在路由中写了个onEnter{set()}事件,实现的。
三、关键代码:
我先取出需要的数据并打印看是否有误。
const title = res.data.data.title;
const keyWord = res.data.data.keyWord;
const description = res.data.data.description;
console.log(title);
console.log(keyWord);
console.log(description);
然后通过js获取俩meta(数一下第一步的meta分别是index.html文件代码里第几个meta),修改其内容。
const descriptionObj=document.getElementsByTagName("meta")[3];
const keyWordObj=document.getElementsByTagName("meta")[4];
console.log(descriptionObj);
console.log(keyWordObj);
descriptionObj.content=description;
keyWordObj.content=keyWord;
至于如何修改 title,那就更简单不过了:
document.title = title;
这部分代码和在一起就是:
const set = async () => {
   const res = await http.get('/xxx/xxx', '');//单引号里填入自己的接口
   console.log(res);
   if (res.data.success){
       const title = res.data.data.title;
       const keyWord = res.data.data.keyWord;
       const description = res.data.data.description;
       console.log(title);
       console.log(keyWord);
       console.log(description);
       const descriptionObj=document.getElementsByTagName("meta")[3];
       const keyWordObj=document.getElementsByTagName("meta")[4];
       console.log(descriptionObj);
       console.log(keyWordObj);
       document.title = title;
       descriptionObj.content=description;
       keyWordObj.content=keyWord;
    }else {
        message.error("请求出错");
    }
};
这里是我对 axios 进行了封装使用,相关内容可以看我的博客:

初识react(9)——实现 axios 的封装使用

之前百度 react 如何设置head内容时,看到一种方法:通过react-helmet设置的,但是我试了试没实现,不知道是哪里出现了问题,希望会的大佬能告知,万分感谢。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React中,可以使用React Router来实现路由功能。对于子路由的动态渲染,可以通过以下步骤实现: 1. 在父组件中定义子路由的路径和组件。 ```JavaScript import { Switch, Route } from 'react-router-dom'; const ParentComponent = () => ( <div> {/* 父组件内容 */} <Switch> <Route path="/parent/child1" component={Child1Component} /> <Route path="/parent/child2/:id" component={Child2Component} /> </Switch> </div> ); ``` 2. 在子组件中获取父组件传递的参数。 ```JavaScript const Child2Component = ({ match }) => { const { id } = match.params; return ( <div> {/* 子组件内容 */} <p>子路由参数:{id}</p> </div> ); }; ``` 3. 在父组件中使用Link组件来跳转到子路由。 ```JavaScript import { Link } from 'react-router-dom'; const ParentComponent = () => ( <div> {/* 父组件内容 */} <ul> <li><Link to="/parent/child1">子路由1</Link></li> <li><Link to="/parent/child2/123">子路由2</Link></li> </ul> <Switch> <Route path="/parent/child1" component={Child1Component} /> <Route path="/parent/child2/:id" component={Child2Component} /> </Switch> </div> ); ``` 4. 在子组件中使用Link组件来返回父组件。 ```JavaScript import { Link } from 'react-router-dom'; const Child2Component = ({ match }) => { const { id } = match.params; return ( <div> {/* 子组件内容 */} <Link to="/parent">返回父路由</Link> <p>子路由参数:{id}</p> </div> ); }; ``` 以上就是React子路由动态渲染的实现步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值