react(任意组件之间传值--消息订阅与发布、路由)
创始人
2024-02-08 14:12:10
0

目录

 兄弟组件传值--任意组件之间传值

fetch发送请求:

react 路由

解决样式丢失的问题:

路由的模糊匹配和严格匹配

嵌套路由

向路由组件传参


前端中文学习网站:印记中文 - 深入挖掘国外前端新领域,为国内 Web 前端开发人员提供优质文档!

1. 搜索github 用户的案例: 地址: https://api.github.com/search/users?q=xx

 兄弟组件传值--任意组件之间传值

消息的订阅与发布

1. 装包: yarn add 'pubsub-js'   

注意包名不允许有大写

引入:

import PubSub from 'pubsub-js'// or when using CommonJS
const PubSub = require('pubsub-js');

例子:

// create a function to subscribe to topics
var mySubscriber = function (msg, data) {console.log( msg, data );
};// add the function to the list of subscribers for a particular topic
// we're keeping the returned token, in order to be able to unsubscribe
// from the topic later on
var token = PubSub.subscribe('MY TOPIC', mySubscriber);// publish a topic asynchronously
PubSub.publish('MY TOPIC', 'hello world!');// publish a topic synchronously, which is faster in some environments,
// but will get confusing when one topic triggers new topics in the
// same execution chain
// USE WITH CAUTION, HERE BE DRAGONS!!!
PubSub.publishSync('MY TOPIC', 'hello world!');

取消订阅:

// add the function to the list of subscribers to a particular topic
// we're keeping the returned token, in order to be able to unsubscribe
// from the topic later on
var token = PubSub.subscribe('MY TOPIC', mySubscriber);// unsubscribe this subscriber from this topic
PubSub.unsubscribe(token);

fetch发送请求:

关注分离的设计思想

不需要用xhr 发送请求--内置对象

.then() 的链式调用

终端promise链:

.them(

()=>{}

(errro)=>{

return new Promise(()=>{})

})

优化: 把有可能出错的代码写在try中,用catch捕获

 

react 路由

前端路由的工作原理: 依靠浏览器的 history

able

包裹多个route

一般组件、路由组件  路由组件会受到一些porps: history,location,match

标签体内容是一个特殊的标签属性,储存在this.props.children 中

解决样式丢失的问题:

1. 使用HashRouter 因为#后面的值默认是前端的,发请求的时候不带给服务器

2. 将相对路径改为绝对路径

路由的模糊匹配和严格匹配

在route中开启精准匹配: exact={true}

嵌套路由

1. 注册子路由需要写上父路由的path 值

2. 路由的匹配是根据注册路由的顺序

向路由组件传参

1. 使用 this.props.match.params

获取:   ‘ :id/:title ’

 2. 传递 sreach 参数

取: this.props.location.search

需要借助 ‘querystring’ 这个内置库进行解析

通过? 和 &传递: (urlencoded 编码)

 【拓】ajax 传递参数的形式:

 3. state 传递,可以不用显示在url地址中

 取: this.props.location.state

 刷新不丢

路由跳转的两种模式:

push 、 repalce

默认是压栈的push操作,开启repalce :

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...