react 路由基础配置解释 模板 精简

news/2024/7/8 6:14:03

路由的基本用法

    // 下载第三方包 react-router-dom
    import {BrowserRouter,Route,Redirect,Link,NavLink} from 'react-router-dom';
    //在组件当中
    class Index extends Component{
        render(){
            return <BrowserRouter>
                    <Route path={}  component={} exact/>
                </BrowserRouter>
        }
    }
    //path  用于指定路径名
    //component  渲染视图  里面可以是方法
    //render  渲染视图  速度比较快 不会重新去创建元素
    //children 与render类似  区别是 无论路径是否匹配都会渲染,适合用于转场动画
    //exact       精确匹配但是不会验证尾线
    //strict      会严格验证尾线

子路由

import {BrowserRouter,Route,Redirect,Link,NavLink,Redirect} from 'react-router-dom';
//Redirect 用于 重定义项
//Link 、NavLink   都是 <a />标签   区别是  后者带有class名
  class Index extends Component{
        render(){
            return <BrowserRouter>
                    <Route path={}  component={this.listRoute}/>
                </BrowserRouter>
        }
        listRoute = () => {//子路由
             <Route path={路径}  component={视图} exact/>
        }
    }

重定义项

import {BrowserRouter,Route,Redirect,Link,NavLink,Redirect} from 'react-router-dom';
//Redirect 用于 重定义项
//Link 、NavLink   都是 <a />标签   区别是  后者带有class名
  class Index extends Component{
        render(){
            return <BrowserRouter>
                    <Route path={'/'}  render={()=><Redirect to={'/index'} />}  exact/>  //路径是 '/' 时自动到 '/index'
                    <Route path={'/index'}  component={Index}/>
                </BrowserRouter>
        }
       
    }

react路由执行的顺序 实现

//      <Route path={}  component={} exact/>
    class Route extends Component{
        render(){
            let {path,component}=this.props;
            return window.location.pathname===path && <component />
        }
    }
  • 打印this.props 可以打印出方法
  • 路径 传参 都可以打印出来
  • 跳转路由–> push()、replace()

http://www.niftyadmin.cn/n/2813898.html

相关文章

js监听浏览器变化的函数,大于500px时,打印console.log('hello'),且只打印一次

let str ;window.onresize function(){if(document.body.clientWidth> 500){if(str ){strhello;console.log(str);}else{return;}}}

redux 解析

下载第三方包 && 并且引入 const { createStore } require(redux);console.log( createStore ); // [Function: createStore] 是一个函数可以进行调用const { createStore } require(redux);let reducer (state,action)>{// action默认是{ type: redux/INITb.2…

微信小程序开发 模拟器上 获取不到input 框的焦点的解决办法 原因

在输入框的位置长按 Windows10笔记本上运行微信小程序开发者工具&#xff0c;输入框&#xff08;input&#xff0c;textarea&#xff09;没有焦点&#xff0c;只能在真机调试&#xff0c;效率太低。 后来发现是Window10对笔记本高分屏支持不好&#xff0c;要DPI缩放&#xff0…

Cannot find module '@babel/plugin-transform-react-jsx'

这个是因为丢包 解决办法 将node_modules删除重新下载就OK了

VM11172:1 thirdScriptError sdk uncaught third Error Cannot read property 'toString' of undefined

VM11172:1 thirdScriptError sdk uncaught third Error Cannot read property toString of undefined TypeError: Cannot read property toString of undefined解决方案引入的文件中存在问题 在引入文件中查找如果引入文件中内容没用 删除即可

position新增的属性值 做 吸顶 很方便

position:sticky;它是粘性定位&#xff0c;新的定位方式&#xff0c;专门用于页面滚动的时候的定位&#xff0c;可以方便实现吸顶条的效果。当使用该属性值的盒子滑动出视口是它自动吸顶&#xff0c;方便好用

vue安装和卸载

安装最新版本 npm install -g vue/cli 或yarn global add vue/cli卸载之前版本 npm uninstall vue-cli -g 或 yarn global remove vue-cli查看 vue --version 或 vue -V

mysql 操作语句

增 insert into 表名(列名1,列名2,,,,,) values(值1,值2,,,,,,),(值1,值2,,,)删 delete from 表名 where 条件表达式改 update 表名 set 列名新值1,列名新值2 where 条件表达式查询 1> 查询全部 select * from 表名 2> 查询某一列的所有行信息 select 列名 from 表…