react

一篇文章快速上手 Nginx

匆匆过客 提交于 2021-01-14 16:58:58
Nginx 简介 什么是 Nginx? Nginx(engine x)是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 Nginx 入门 详细安装方法请参考:https://github.com/dunwu/nginx-tutorial/blob/master/docs/nginx-ops.md Nginx 的使用比较简单,就是几条命令。 常用到的命令如下: nginx -s stop 快速关闭 Nginx,可能不保存相关信息,并迅速终止 Web 服务。 nginx -s quit 平稳关闭 Nginx,保存相关信息,有安排的结束 Web 服务。 nginx -s reload 因改变了 Nginx 相关配置,需要重新加载配置而重载。 nginx -s reopen 重新打开日志文件。 nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。 nginx -t 不运行,仅仅测试配置文件。Nginx 将检查配置文件的语法的正确性

react 样式冲突解决方案 styled-components

萝らか妹 提交于 2021-01-14 07:14:50
前置 在 react 中解决组件样式冲突的方案中,如果您喜欢将 css 与 js 分离,可能更习惯于 CSS-Modules;如果习惯了 Vue.js 那样的单文件组件,可能习惯于使用 styled-components 来解决这个问题。使用 CSS-Modules 从老项目迁移过来可能更容易。 安装 npm i styled-components 基本用法 import React from 'react' import { render } from 'react-dom' import styled from 'styled-components' const items = [ { title: 'title1', type: 'primary', desc: 'Lorem ipsum dolor sit amet consectetur ' }, { title: 'title2', type: 'other', desc: 'Lorem ipsum dolor sit amet consectetur ', }, ] function App() { return ( <div> {items.map(renderItem)} </div> ) } function renderItem(item) { return ( <Wrap> <h2>{item.title}<

关于Vue

自古美人都是妖i 提交于 2021-01-13 17:53:00
一:关于vue 1:vue是由饿了么ued团队开发并维护的一个渐进式js框架 2:vue是以数据作为驱动,既有angular中的数据双向绑定,也有react当中的框架,是mvm框架,也仅仅是view层,与它类似的框架有knockout.js ,avalon.js 3:vue中实现数据双向绑定的原理;getter和setter(但我们一般是用{{ }}和v-module来实现数据的双向绑定,跟angular中的数据双向绑定机制几乎是一样的) 4:如何使用vue去构建项目  1)使用vue-cli脚手架工具进行整个项目的构建   2)使用vue-router来实现vue中的切换   3)使用vuex进行状态集的管理,axios或者是fetch或者是vue-resource来进行数据的交互   4)使用template模板引擎进行组件化的开发 5:常用指令;   v-if:条件渲染指令   v-for:循环遍历指令   v-bind:绑定指令,绑定属性的   v-html:替换dom内容指令   v-text:替换文本内容指令   v-on:监听事件指令;v-on:click="fn"   slot:分发属性,占位符,创建很多相似组件,用来提高组件的复用性,替换组件内部元素   component:购物车标签,切换标签,is属性,说明那个组件被渲染 6:vue中的表达式和计算属性

nginx 判断移动端或者PC端 进入不同域名

百般思念 提交于 2021-01-13 05:37:23
  自己最近用node.js + react 做了个网站。在PC端上的访问是这样的:      手机访问居然是这样的:        这样用户体验很不好。 所以做了一个移动端的版本。     需求: 需要判断用户是否手机还是电脑 访问网站,从而进入不同的版本。     解决方案:       1. 解析 xxx.com 域名到pc版。       2. 解析m.xxx.com 域名到 移动版。       3.通过nginx 判断用户 是移动端访问还是PC端 从而进入不同的域名 实现: server { listen 80; server_name xxx.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if ($http_user_agent ~* "(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)") { //判断是否为移动设备访问 rewrite ^/(.*)$ http://m.xxx.com

「开发者投稿」使用 Authing 对 SPA 应用进行身份认证实践

£可爱£侵袭症+ 提交于 2021-01-12 23:31:37
作者段清华,「最懂金融的 AI 工程师,微软 AI 领域最有价值专家(MVP),谷歌开发者专家(GDE),希望加速人类的生产力,让智能比电力与宽带更普及。」 为什么需要云身份验证和单点登录 简单来说是为了降低维护用户注册登录系统、权限、统计等各方面的成本。 应用结构简述 通过 Authing 实现身份验证和单点登录,有很多种方法,这篇文章的例子是根据自身软件架构,实现了其中一种相对简单的方法,并不适用所有情况,Authing 本身还提供了多种的登录解决方案,包括直接嵌入到网站上、APP 上的等等。 前端采用纯 React/React-router/Ant.design 开发,没用 Redux/Server Rendering 之类比较复杂的东西,就使用 create-react-app 的最基本方案,没用 TypeScript(因为懒,我有罪)。 后端采用 Python + FastAPI 的简单 API。 登录流程 第一阶段,前端 通过检测本地 localStorage,未发现保存的登录 token 信息时,提示用户需要登录,给出登录链接,用 HTML 的 a 标签直接跳转到 Authing 提供的 SSO 网址上,例如 xxxx.authing.cn ,其中 xxxx 是可以用户自定义的。 第二阶段,Authing SSO 网站 完成登录,可以自由配置,例如注册方式

react+typescript项目构建

纵然是瞬间 提交于 2021-01-12 16:02:14
react项目构建可以很简单,但是如果是结合typescript,其实也不是很麻烦,官网也有很明确的说明。有两种办法: 1、直接构建带有typescript的react项目,我们需要增加额外的参数,模版不能使用默认的cra-template。而是使用cra-template-typescript。 npx create-react-app tsreactdemo --template typescript 创建完成的成功提示与原来没有太大的区别,直接进入项目路径下,然后yarn start或者npm start。 进入项目,我们不着急启动,首先看看文件长得怎么样,默认会创建一个tsconfig.json,而且src目录下的默认的index.js,App.js文件变为了ts版本的index.tsx,App.tsx。 我们可以看看package.json中的依赖: 其实,依赖就是多了@types/jest,@types/node,@types/react,@types/react-dom 。 最早,我们创建typescript的react项目命令好像直接就是npx create-react-app xxx --typescript,可是现在这样不行了,后面的参数必须是--template typescript,而不是直接--typescript。这个需要说明一下,并不是我们搞错了

【React】668- React Hooks的优缺点

最后都变了- 提交于 2021-01-12 07:49:52
https://zhihu.com/people/zhan-zi-zhen-84 下面我谈一下我认为的 react hooks 的优缺点,优缺点通过和传统的 React.Component 进行对比得出。 优点 一、更容易复用代码 这点应该是 react hooks 最大的优点,它通过自定义 hooks 来复用状态,从而解决了类组件有些时候难以复用逻辑的问题。 hooks 是怎么解决这个复用的问题呢,具体如下: 每调用 useHook 一次都会生成一份独立的状态,这个没有什么黑魔法,函数每次调用都会开辟一份独立的内存空间。虽然状态( from useState )和副作用( useEffect )的存在依赖于组件,但它们可以在组件外部进行定义。这点是 class component 做不到的,你无法在外部声明 state 和副作用(如 componentDidMount )。上面这两点,高阶组件和renderProps也同样能做到。但hooks实现起来的代码量更少,以及更直观(代码可读性)。 举个例子,我们经常使用的 antd-table ,我们经常需要写一些状态: pagination={current:xxx,pageSize:xxx,total:xxx} 。但许多场景只是简单的表格,我们希望封装一个高阶组件,自带这些状态,并可以自动调用 server 去获取 remote

与程序打交道的人生,是最简单的人生

不羁的心 提交于 2021-01-12 07:00:25
、 时间一晃而过,大学毕业转眼间已经工作9年了,总结一下自己这些年来感受。 与程序打交道的人生,是简单的人生 一次做规划局的项目,规划局的职员很是钦佩地说: “你们真了不起,在电脑上敲敲键盘就能做出软件来。 ”, 规划局领导说: “ 跟电脑打交道是最简单的,难的是跟人打交道 。 ”。 领导的话很有深意,一语道破了本质,做程序的人,是比较简单的。 不懂什么叫编程 大学本科,读“计算机科学与技术专业”(相信看这篇博客的人多半也是学这个专业的 ^_*),课程重理论而轻实践。 最初学习C语言,对于编程没有任何概念,我清楚的记得,一次在课堂上问老师: “计算机输入法,可视化操作界面已经很完善了,为什么要用C语言中 Print() 函数输出一段字符呢? 而且我们学习使用Console控制台的黑白屏输入输出,也不像是平时使用的软件啊? ”。 老师听后也是一脸的懵逼,说: “你好好学,慢慢就明白了”。 你不懂的,老师也没法回答你,只有靠自己慢慢地摸索,慢慢去领悟。 Java还是C#,平台选择的爱恨情仇 初学Java,这是我接触的第一个最具有实用意义的编程语言(可以做网站,做软件,虽然C语言,C++也可以开发应用软件,但毕竟使用的人较少,对于初学者,找到一个合适的教程都困难)。 当时的学习,基本是自学,上网下载视频教程,一集一集地看,不懂的概念上网查,去图书馆借阅相关书籍资料。 什么JSP标签

React 16 Jest单元测试 之 Jest工具

眉间皱痕 提交于 2021-01-11 03:10:23
转载地址 React 16 Jest单元测试 之 Jest工具 项目初始化【这里使用之前的项目,节省时间】 项目初始化地址 https:// github.com/durban89/webpack4-react16-reactrouter-demo.git tag:v_1.0.23 拉取 git clone https://github.com/durban89/webpack4-react16-reactrouter-demo.git cd webpack4-react16-reactrouter-demo git fetch origin git checkout v_1.0.23 npm install Jest有很多特定的功能,可以作为单独的包来使用,下面罗列下官网提供的一些有用的包 环境 node --version v8.11.3 node的安装包方法我就不介绍了,如果看了这么久我的分享还是不知道的话,可以继续看看前面文章,这里简单提示下,安装命令如下 npm install package_name --save // 生产安装 npm install package_name --save-dev // 开发安装 1、jest-changed-files 此工具提供的功能是标识在git或hg中被修改过的文件,提供的方法如下

input 清空值。(转载)

为君一笑 提交于 2021-01-10 07:26:58
ref顾名思义我们知道,其实它就可以被看座是一个组件的参考,也可以说是一个标识。作为组件的属性,其属性值可以是一个字符串也可以是一个函数。 其实, ref 的使用不是必须的。即使是在其适用的场景中也不是非用不可的,因为使用ref实现的功能同样可以转化成其他的方法来实现。但是,既然ref有其适用的场景,那也就是说ref自有其优势。关于这一点和ref的适用场景,官方文档中是这样说的: 在从 render 方法中返回 UI 结构之后,你可能想冲出 React 虚拟 DOM 的限制,在 render 返回的组件实例上调用某些方法。通常来说,这样做对于应用中的数据流动是不必要的,因为活跃的数据( Reactive data )流总是确保最新的 props 被传递到每一个从 render() 输出的子级中去。然而,仍然有几个场景使用这种方式是必须的,或者说是有益的:查找渲染出的组件的DOM标记(可以认为是DOM的标识ID),在一个大型的非React应用中使用React组件或者是将你现有的代码转化成React。 下面我们来看这样的一个场景(下面的例子经常被用于ref的讲解,可见下面描述的场景应该是比较经典的):通过某个事件使<input />元素的值被设为空字符串,然后使该<input />元素获得焦点。 var App = React.createClass({ getInitialState