react

react 插入html

☆樱花仙子☆ 提交于 2020-08-07 19:33:51
dangerouslySetInnerHTML dangerouslySetInnerHTML 是 React 为浏览器 DOM 提供 innerHTML 的替换方案。通常来讲,使用代码直接设置 HTML 存在风险,因为很容易无意中使用户暴露于 跨站脚本(XSS) 的攻击。因此,你可以直接在 React 中设置 HTML,但当你想设置 dangerouslySetInnerHTML 时,需要向其传递包含 key 为 __html 的对象,以此来警示你。例如: function createMarkup() { return {__html: 'First &middot; Second' }; } function MyComponent() { return <div dangerouslySetInnerHTML={createMarkup()} />; } 来源: oschina 链接: https://my.oschina.net/u/4295934/blog/4330126

谈谈 Promise 以及实现 Fetch 的思路

こ雲淡風輕ζ 提交于 2020-08-07 19:30:45
Promise 是异步编程的一种解决方案。 Promise /** * 属性 */ Promise.length Promise.prototype /** * 方法 */ Promise.all(iterable) // 所有成功触发成功 任何失败触发失败 Promise.race(iterable) // 任意一个成功或失败后触发 Promise.reject(reason) Promise.resolve(value) /** * 原型 */ Promise.prototype.constructor //方法 Promise.prototype.catch(onRejected) Promise.prototype.then(onFulfilled, onRejected) Promise.prototype.finally(onFinally) Promise 有三种状态 pending: 初始状态,既不是成功,也不是失败状态。 resolve: 意味着操作成功完成。(resoloved) reject: 意味着操作失败。 pending pending 是初始状态,执行 resolve/reject 会进入对应状态,如果不执行,责一直为 pending 状态 例如下面代码,promise 将一直在 pending 状态,不会执行 then/catch. new

React Hooks 系列之3 useContext

拟墨画扇 提交于 2020-08-07 12:48:54
本系列将讲述 React Hooks 的使用方法,从 useState 开始,将包含如下内容: useState useEffect useContext useReducer useCallBack useMemo useRef custom hooks 掌握 React Hooks api 将更好的帮助你在工作中使用,对 React 的掌握更上一层楼。本系列将使用大量实例代码和效果展示,非常易于初学者和复习使用。 今天我们讲讲 Context 对象和 useContext 的使用方法。 什么是 Context Api 考虑这样一种场景,如果组件树结构如下,现在想从根节点传递一个 userName 的属性到叶子节点 A D F,通过 props 的方式传递,会不可避免的传递通过 B C E,即使这些组件也没有使用这个 userName 属性。 如果这样的嵌套树形结构有5层或10层,那么将是灾难式的开发维护体验。如果能不经过中间的节点直接到达需要的地方就可以避免这种问题,这时 Context api 就是来解决这个问题的。 Context api 是在组件树中传递数据但不用每层都经过的一种 api。下面我们一起看看 Context Hook 的使用方法。 使用 Context 我们举个例子重点看下最右边的分支,C E F,从根节点传递一个变量 username 到 F 节点。

再见HTML ! 用纯Python就能写一个漂亮的网页

喜欢而已 提交于 2020-08-07 12:31:48
我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互: 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 要懂后端,比如Python里面的Django或者Flask,或者是Java里面的SpringBoot 要懂前端,现在都叫大前端了(因为很复杂),比如前端的框架Vue/React, 然后页面的美化框架Bootstrap ,还有html ,csss 和Javascript 三驾马车. 天啊,听听头都大呢!其实我就给老板做一个简单的交互的页面,而且我只会Python ,有没有很简单的办法可以做到呢。 今天小编在Github上逛的时候,找到一个非常酷的神器,名字叫remi ,目前收获了2300个赞。 star并不是很多, 但是这个库可是选入2018年的十大明星库 ,号称是一个独立的GUI库,而且最牛逼的就是这个库 竟然小于 100K ,是否很神奇呢,我们一起来体验看一下特性: 跟其他GUI库区别? Kivy,PyQT和PyGObject都需要主机操作系统的本机代码,这意味着安装或编译大型依赖项

开发一个大型后台管理系统,应该用前后端分离的技术方案吗?

放肆的年华 提交于 2020-08-07 07:24:09
话说这天,我们团队开会讨论了一个问题,不,与其说“讨论”,不如说“争吵”更合适。 背景是这样的: 我们要开发一个 xxx 后台管理系统,这个系统业务复杂、功能又多,大家的争吵集中在“这个系统是否应该用前后端分离的方案”。 这次争吵的问题比较典型,于是我就写了这篇文章。为了大家好理解,把“xxx 后台管理系统”泛化一下,变成: 开发一个大型后台管理系统,应该用前后端分离的技术方案吗? 先说一下,本文中的观点肯定有人不认同,再加上我对前端技术掌握有限,所以大家批判的看吧。 1. 先审题,冷静的分析一下 前后端分离的优点多多,这不需要多说,大家人人都清楚。 来,讨论之前,我们先一起好好审审题。 结合“ 开发一个大型后台管理系统 ”这个约束条件,冷静的分析一下: • 什么是后台管理系统:首先后台管理系统这个称呼,意味着这是一个 B 端系统 。可以小到部门级应用(客户投诉登记系统、办公设备台账系统),大一点可以是大集团级核心系统(500 强保险公司客服、呼叫中心),可以是 ERP、CRM、OA(SAP、用友、泛微协同),可以是一个 B2C 电商的商城后台、支付网关管理控制台,可以是 Saas 的管理后台(Salesforce、Teambition、Jira),可以大到阿里云控制台…… • 什么是大型:我理解大型系统是指功能模块多、交互复杂,而不是访问量、TPS、数据量大。所以 CMS、OA

敬请指正-我进行单元测试的分享

百般思念 提交于 2020-08-07 01:13:32
单元测试的好处是啥? 重构、重构、重构,重要的事情说三遍 TDD(测试驱动开发)的具体实现就是通过红灯->绿灯->重构不断重复,一步一步去健壮我们的代码,保证今后重构代码的时候测试的准确,可以在重构中准确的定位到问题。同时也为以后的开发提供支持,在测试的基础上我们可以重构结构和业务功能。 单元测试是最好的注释 测试会提示你哪些步骤是可以通过、如何使用的最好文档。更详细的规范了测试目标的边界值与非法值。 定位bug,减少bug 单元测试可以通过不同的条件来发现问题在哪里,在一些弱类型的语言中也避免了一些类型检查的低级错误,当然这个现在我们都用TypeScript做到了。 被迫的规范组织结构 可能平时我们会把一个方法写的很复杂、一个类写的很大,没有想过如何去组织结构,但如果你想到你即将的测试要如何写的时候,那可能你在开发前必须要想想哪些部分可以提出来了。这样会慢慢养成很好的思维。 好了,不多BB,看看怎么用吧!!! 我用的是jest测试哦!!! 1.看一下我的jest.config.js中 testMatch ,告诉我需要在lib文件夹中创建个目录 __tests__ , __tests__ 的目录里面 xxxx.unit.(js|jsx|ts|tsx) 这样的文件就是测试文件 加入我们642830685,领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

react+antd form 警告Warning: [antd: Form.Item] `children` is array of render props cannot have `name`.

不打扰是莪最后的温柔 提交于 2020-08-06 20:32:38
如题所示,该警告出现在react与antd使用中,我们页面表单form中使用了Form.Item包含输入框,在username输入框的下面,加入了一行提示文字,代码如下: import React from 'react' import {Card,Form,Input,Button} from 'antd' import 'antd/dist/antd.css' const LoginForm = () => { const onFinish = values =>{ console.log("receive values of form:",values); } const [form] = Form.useForm() return <Card> <Form name="login_form" layout={'vertical'} form={form} onFinish={onFinish}> <Form.Item label="username" name="username"> <Input /> <span>please input username.</span> </Form.Item> <Form.Item label="password" name="password"> <Input type="password"/> </Form.Item> <Form

Flutter开发初探

[亡魂溺海] 提交于 2020-08-06 20:14:04
目前跨端开发比较热门的就是 React Native 和 Flutter 了,到底该选哪门技术似乎也快成了大前端圈的一个热门话题。对于web前端来说,基于web生态的 React Native 应该是一个更加顺畅而自然的选择;但 Flutter 让人动心的地方就是高性能和 跨端UI一致性。而 React Native 发展不太明朗和 Flutter 越发成熟的走势对比促使我从观望的心态转为加入 Flutter 。 这里主要就是记录一下学习 Flutter 的一些感想和看法: 包管理 布局和样式 json 状态管理 包管理 pubspec.yaml 文件的作用类似于 npm 的 package.json ,而yaml格式也比json方便。但是不能用命令行自动安装包却让习惯了npm的我觉得麻烦。因为Flutter 安装依赖包是这么一个流程: 打开 pub.dev 网站; 搜索需要的包,得到包的名称和版本; 把包名称和版本填入 pubspec.yaml ,最后才开始下载包。 我觉得应该直接命令行安装包,让它帮我们下载,名称版本自动写入 pubspec.yaml 。如果没有指定版本就是默认下载最新版本,因为很多时候我们并不想知道版本号,给我个能用的最新的版本号就ok了。 布局和样式 就和很多人想的一样,为什么不使用 jsx 或者 xml 格式进行布局,因为基于代码的方式看起来太不直观了

Keycloak快速上手指南,只需10分钟即可接入Spring Boot/Vue前后端分离应用实现S

扶醉桌前 提交于 2020-08-06 15:22:50
登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生。本文将简明的介绍Keycloak的安装、使用,并给出目前较流行的前后端分离应用如何快速接入Keycloak的示例。 Keycloak是什么 Keycloak是一种面向现代应用和服务的开源IAM(身份识别与访问管理)解决方案 Keycloak提供了单点登录(SSO)功能,支持 OpenID Connect 、 OAuth 2.0 、 SAML 2.0 标准协议,拥有简单易用的管理控制台,并提供对LDAP、Active Directory以及Github、Google等社交账号登录的支持,做到了非常简单的开箱即用。 Keycloak常用核心概念介绍 首先通过官方的一张图来了解下整体的核心概念 这里先只介绍4个最常用的核心概念: Users : 用户,使用并需要登录系统的对象 Roles : 角色,用来对用户的权限进行管理 Clients : 客户端,需要接入Keycloak并被Keycloak保护的应用和服务 Realms : 领域,领域管理着一批用户、证书、角色、组等,一个用户只能属于并且能登陆到一个域,域之间是互相独立隔离的, 一个域只能管理它下面所属的用户