React之模拟数据库json-server 2019-01-26

React之模拟数据库json-server 2019-01-26,第1张

在前端开发的时候,我们有时候需要验证一些异步请求返回数据后的交互效果,那么就需要搭建一个nodejs服务器来模拟,但是需要自己去在node项目中写比较麻烦,json-server就是快速搭建这样一个node服务器,你只需要创建一个json的文件,然后监听这个文件就可以了

这里我使用yarn本地安装并演示json-server,因为我npm已经有了全局的json-server

终端命令:

现在你已经运行了一个小的服务器,通过向 >

SPA 项目基本上都会用到路由 router。react 还有 vue 对应有其路由插件。 react-router 还有 vue-router 都有 hashHistory 和 browserHistory 模式。这里大概说一下两者区别

大多数情况下,browserHistory 模式明显是优于 hashHistory 模式的,但 browserHistory 需要一定的配置

可以看出,hashHistory 不需要什么配置,但 browserHistory 需要服务端支持,这里简单说一下两种方式做支持,其它方式基本上都是类似

这里说明一下为什么要这样设置,browserHistory 模式下,URL 是指向真实 URL 的资源路径,当通过真实 URL 访问网站的时候(首页),这个时候可以正常加载我们的网站资源,而用户在非首页下手动刷新网页时,由于路径是指向服务器的真实路径,但该路径下并没有相关资源,用户访问的资源不存在,返回给用户的是 404 错误

通过上面所说的原理,简单起来说就是 browserHistory 模式下,需要每个路由下都要有对应的资源存在,就不会产生 404 错误,所以如果不借助服务端的话,又要实现这种模式,这种场景在自己不能配置服务器时候会碰到,例如把项目部署到 GitHub pages 上。那该怎么办呢

所以,我们的做法就是在每个 路由路径 下,都放置一个跟首页一样的 indexhtml

下面是做法,当然也是有各种方式的,都是可以类推的

假定我们有以下的路由设定,这里以 react-router 为例子

那么就可以路由路径为

接下来我们就把生成的 indexhtml 复制到这几个路径下就可以了

这样用户访问就不会出现 404 了,SPA 的功能也不受影响,为了方便我们可以把这个生成工具集成到 packagejson

ok, 当我们运行 npm run build 时候,就会同时生成对应路径下的 indexhtml,这样就可以了完成我们所需要的功能了

看到这里,应该会有一个疑问,如果 routes 中有一些是不能穷举的路径要怎么办?例如 <Route path="posts/:id" component={Verify(Inbox)} /> 。这时候是没办法生成对应资源的

不过还是可以使用以下 hack 方式:

直接使用服务端 404 页面了,如果是用 GitHub pages 的话,我们可以直接生成一个 404html 即可,直接把 404 页面弄成跟 index 内容一样,404 时候就是正常的内容页面,这时候页面功能是正常的,并且不需要前面的一堆做法了

可能是你在webpackconfigjs文件中没有正确设置output的publicPath参数导致的。根据查询相关公开信息显示,如果你在使用React来设置服务器,并且出现了localhost404错误,可以尝试将这个参数设置为'/'来解决这个问题。

楼主,我不知道你的版本是不是不同,但是我的没有return 0,只有return true或者false。贴出来为证!connectjs大小:1044K 已经过百度安全检测,放心下载点击下载下载量:9

1、React项目实现点击预览:
“React-zmage” 一个放大查看组件,动画流畅简洁,使用简单方便。react-zmage 是一个基于 React 的的缩放控件, 使用 Zmage 标签包裹后的可以立即获得缩放效果, 替代原生的 img 标签,也可以实现的翻转。
(1)引入:import Zmage from 'react-zmage'
(2)将页面中的 img 标签替换为 Zmage
<img src="源连接" /> 替换为<Zmage src="源连接" />
现在这些都可以点击放大查看了 !
2、pathresolve() 它的作用是拼接路径,其传参个数没有限制,每个参数均表示一段路径。

从后向前,若字符以 / 开头,不会拼接到前面的路径(因为拼接到此已经是一个绝对路径);若以 / 开头,拼接前面的路径,且不含最后一节路径;若以 / 开头 或者没有符号 则拼接前面路径;
3、在开发时,当我们使用pathresolve()拼接路径时,会遇到需要使用绝对路径的情况,但是当我们把项目部署到服务器时,绝对路径会发生变化。因此,需要一个可以计算的绝对路径的表达方式。有了__dirname,我们就可以解决以下问题。__dirname, 在所有情况下,该变量都表示当前运行的js文件所在的目录。

因为react项目多为SPA项目,用于生产部署时,存在首屏响应过慢导致用户难以忍受等待时间从而流失问题。一般导致首页响应过慢的原因有很多,网络问题是其中之一。本文记录通过七牛云免费CDN部署react项目。

1create-react-app创建react项目,并启动项目。

2项目打包。
此时如果只是普通部署,不要求体验效果时,把build文件下的文件拷贝到静态服务器即可。
接下来考虑如何静态文件CDN部署。

3修改webpack文件,打包文件的引用路径省车过为CDN路径。

     1 config文件夹下pathsjs(修改pathname为cnd的域名)

    2 config文件夹下webpackconfigjs 修改output文件名,使用绝对路径。

修改后重新打包,发现indexhtml中引入css,js的路径皆改成cdn路径。
附加: 上传打包文件至七牛云CDN。(uploadjs)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13489651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)