美文网首页
react根据路由动态修改页面title

react根据路由动态修改页面title

作者: yzr_0802 | 来源:发表于2017-09-30 10:14 被阅读0次

    1、在react的container组件中componentDidMount生命周期中
    document.title="这是title名称"

    2、或者在路由配置中使用onEnter事件修改
    例如:

     <Route path="qa" component={QA} onEnter={()=>{document.title="这是title名称"}}/>
    

    3、使用react-side-effect是一个类似Connect组件的容器,通常它被称为高阶组件。可能就会用到react-document-title插件
    例如:

    var React = require('react'),
    PropTypes = require('prop-types'),
    withSideEffect = require('react-side-effect');
    

    4、封装公共组件。在react中,我们可以使用非常少的代码封装出一个公共组件,来修改每个路由的title。

    import React from 'react'
    import PropTypes from 'prop-types'
    export default class ReactDocumentTitle extends React.Component {
    setTitle() {
        const { title } = this.props
        document.title = title
    }
    componentDidMount() {
        this.setTitle()
    }
    componentDidUpdate() {
        this.setTitle()
    }
    render() {
        return React.Children.only(this.props.children)
    }
    }
    ReactDocumentTitle.propTypes = {
    title: PropTypes.string.isRequired
    }
    

    这份代码是将react-side-effect和react-document-title合并。

    使用该组件:

    import ReactDocumentTitle from 'path/ReactDocumentTitle'
    render() {
    return (
        <ReactDocumentTitle title="文档标题">
            
        </ReactDocumentTitle>
    )
    }

    相关文章

      网友评论

          本文标题:react根据路由动态修改页面title

          本文链接:https://www.haomeiwen.com/subject/zbdgextx.html