react 学习笔记

react路由:

两种: HashRouter   BrowerRouter 对应的vue的hash,history 模式

路由跳转

1 vue:
2 <router-link to="/user">页面</router-link>
3 
4 react:
5 <link to="/user">页面</link>

 

路由出口:(react 需要定义路由对应关系)

vue:
<router-view />

react:
<Routes>
    <Route path='/about'  element = { <About /> }  />
</Routes>

<Routes> </Routes> 相当于vue的<router-view />,路由出口
path属性指定匹配的路径地址,element属性指定要渲染的组件(当路径path匹配成功,渲染element中的组件)

 

 

编程式路由跳转:

vue:
router.push({path:'/about'})
router.replace({path:'/about'})

query传参
router.push({path:'/about',query{ id : 99}})
query收参
let id = this.$route.query.id



react:
1导入 useNavigate
import { useNavigate } from 'react-router-dom'
 
const navigate = useNavigate()
navigate ('/about')
navigate ('/about', {replace : true} )


query传参
navigate ('/about?id=99')
query取参数
let [ params ] = useSearchParams()
let id = params.get('id')


params传参
navigage('/about/99')
params取参数
let params = useParams()
let id = params.id

 


 

 

 

react兄弟组件传:

使用pubsub-js实现

pubsub.publish(‘发布名’,‘需要传递得值’) 发布

pubsub.subscribe(‘发布名’,('发布名',‘参数’)=>{}) 订阅  实现

 

 

 

componentDidMount  ==== mounted  组件挂在后

componentWillUmount === beforeDestroy   组件销毁前 

 

 

render  初始化渲染,状态更新之后调用

 

 

 

 

一:安装react脚手架

  推荐使用 :01 npx create-react-app my-app

        02 npm init react-app my-app

        03 yarn create react-app my-app

 

 

 

 

 

 

 

二jsx语法,在JavaScript中写html语言

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

 

 

 

vue在htm'l中使用 js变量 需要用 {{}} 双花括号, react 中使用{}单花括号

 

 

 

      

posted @ 2021-05-22 11:07  javascript9527  阅读(68)  评论(0编辑  收藏  举报