如果您对5个很棒的React.js库,值得你亲手试试!感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于5个很棒的React.js库,值得你亲手试试!的详细内容,我们还将为您解
如果您对5个很棒的 React.js 库,值得你亲手试试!感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于5个很棒的 React.js 库,值得你亲手试试!的详细内容,我们还将为您解答react常用库的相关问题,并且为您提供关于10 个很棒的 jQuery 代码片段、10 个很棒的 PrestaShop 电商主题、10 个很棒的学习 iOS 开发的网站、11个很棒的 AngularJS 工具的有价值信息。
本文目录一览:- 5个很棒的 React.js 库,值得你亲手试试!(react常用库)
- 10 个很棒的 jQuery 代码片段
- 10 个很棒的 PrestaShop 电商主题
- 10 个很棒的学习 iOS 开发的网站
- 11个很棒的 AngularJS 工具
5个很棒的 React.js 库,值得你亲手试试!(react常用库)
作者:Louis Petrik
译者:前端小智
来源:medium
点赞再看,养成习惯本文
GitHub
https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。
React在过去几年变得越来越受欢迎。随之而来的是越来越多的库的发布,给我们带来了新的可能性,但最重要的是让开发这工作变得越来越简单。
在本文中,介绍 5 个 React 库,希望能给你带来一些帮助。
1. react-portal
我认为React中的 Portals(传送门) 对大多数人来说都很熟悉,即使它们很少被使用。下面是 Reac t文档中对它们的描述:
Portal 提供了一种将子节点渲染到存在于父组件以外的 DOM 节点的优秀的方案。
通常,我们的整个 React 应用程序都是在HTML中的一个 DOM 节点中渲染的。但是通过portals,我们可以定义附加的节点,在这些节点上我们可以挂载应用程序的各个部分,例如单个独立的组件。
然而,在官方文档中,门户以一种相当麻烦和复杂的方式进行描述,这就是也 react-portal
出现的一个原因。
现在是 react-portal 用法:
import { Portal } from ‘react-portal’
<Portal node={document && document.getElementById(‘portal’)}>
<p>This is portaled into the portal div!</p>
</Portal>
只需使用 选择器(如getElementById
)将HTML代码中的portal
容器作为目标,就可以了。
在React.js应用程序的public/index.html
文件中:
<div id=”root”></div>
<div id=”portal”></div>
如上所见,每个React应用程序所需的根元素都像往常一样存在,使用了portal
我们就可以将元素指定到与根同级的位置。
当然,我们也可以动态切换portal
{this.state.show ? (
<Portal node={document && document.getElementById(‘portal’)}>
<p>Portal content</p>
</Portal>
) : null}
2. react-toastify
在现代web开发中,为终端用户提供动态信息是绝对必要的。不幸的是,JavaScript 中的alert()
函数不是实现此目的的好选择,这一点大家都很清楚,所以才会出现各种各样的 UI 库。
这里介绍一个 React 提示插件 react-toastify ,它是一个很小且可自定义的库,以下是官方给出的事例:
用法如下:
import { ToastContainer, toast } from ''react-toastify''
import ''react-toastify/dist/ReactToastify.css''
toast.configure({
autoClose: 2000,
draggable: false,
position: toast.POSITION.TOP_LEFT
})
const notify = () => toast(''Wow so easy !'')
const App = () => (
<div className="App">
<button onClick={notify}>Notify !</button>
</div>
)
一步一步说下:
- 首先导入库本身,但重要的是随后导入所需的CSS。
- 然后配置
toast
,autoClose
的意思是toast
过了多长时间就会自动消失。 - 通过使用
toast()
函数,就可以让toast
出现。
更酷的功能
我们还可以在toast
中放入JSX:const notify = () => toast(<h1>Big Text</h1>)
。
autoClose
可以替换为false
,因此它永远不会自动关闭。
大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。
3. react-contextmenu
很难想象没有上下文菜单的应用,这在网站上也是很不寻常。 这不再是因为越来越多的Web应用程序接近真实的桌面应用程序,而这些应用程序通常已经提供了类似的良好性能和许多功能,而这些功能是我们多年前从未期望过的。
这些功能之一是用户对右键单击的评估,这种评估在网站上越来越多地使用。 当然,那些是带有许多UI元素的更复杂的控件。
通常用于显示所谓的上下文菜单,为此目的,有一个非常方便的React.js库。用法如下:
import React from ''react''
import { ContextMenu, MenuItem, ContextMenuTrigger } from ''react-contextmenu''
const App = () => (
<React.Fragment>
<ContextMenuTrigger id="TriggerID"> {/* ID for every instance must be individual */}
<p>Right click on me!</p>
</ContextMenuTrigger>
<ContextMenu id="MenuID">
<MenuItem onClick={() => alert(''first '')}>
<button>1. Item</button>
</MenuItem>
<MenuItem onClick={() => alert(''second'')}>
<button>2. Item</button>
</MenuItem>
</ContextMenu>
</React.Fragment>
)
export default App
<ContextMenuTrigger>
是我们需要右键单击以切换菜单的组件。菜单本身是在<ContextMenu>
包装器中定义的。对于每个项,都有一个<MenuItem>
组件,我们可以给它一个onClick
事件来处理我们的用户输入。
4. react-lazy-load-image-component
在我们的网站上展示大量的图片需要一段时间。通常,已加载和突然出现的图片会导致用户对UI产生不愉快的体验,当然我们希望避免这种情况。
一个为用户优化有关图像的所有功能的强大库是response-lazy-load-image-component。我们不仅可以创建一个良好的模糊效果,就像我下面的例子,以桥梁加载的图像,但我们也可以延迟加载图像。这可以在下面的官方示例中看到:
5. react-onclickoutside
用户界面设计的一个重要规则是,认真评估尽可能多的用户输入。 每个人都应该清楚这一点,但是有时可能很难将这样的东西实现为代码。
一个可以想象的例子是用户折叠的菜单。如果你想再次关闭它,90%
的用户倾向于简单地点击网站的死区(即那些本身不会产生反应的元素)。在几乎所有的专业网站上,这是完全相同的。要关闭菜单,只需再次单击它的旁边,而不是直接在它上切换。
有一个库可以满足这类的操作,它就是response-onclickoutside,它允许我们处理实际元素之外的单击事件。
在下面的示例中,你可以看到我们如何为一个简单的h1
和button
实现此功能。仅当单击除这两个之外的任何内容时,console.log
才会输出。处理此事件的函数必须调用handleClickOutside
。
import React, { Component } from ''react''
import onClickOutside from ''react-onclickoutside''
class App extends Component {
handleClickOutside = evt => {
console.log(''You clicked outside!'')
}
render() {
return (
<div>
<h1>Click outside!</h1>
<button>Don''t click me!</button>
</div>
)
}
}
export default onClickOutside(App)
总结
希望对您有所帮助。 谢谢阅读!
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
交流
文章每周持续更新,可以微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,另外关注公众号,后台回复福利,即可看到福利,你懂的。
本文同步分享在 博客“前端小智”(SegmentFault)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
10 个很棒的 jQuery 代码片段
图片预加载
(function($) { var cache = []; // Arguments are image paths relative to the current page. $.preLoadImages = function() { var args_len = arguments.length; for (var i = args_len; i--;) { var cacheImage = document.createElement(''img''); cacheImage.src = arguments[i]; cache.push(cacheImage); } } jQuery.preLoadImages("image1.gif", "/path/to/image2.png");
在新窗口打开链接 (target=”blank”) $(''a[@rel$=''external'']'').click(function(){ this.target = "_blank"; }); /* Usage: <a href="http://www.catswhocode.com" rel="external">catswhocode.com</a> */ 当支持 JavaScript 时为 body 增加 class /* 该代码只有1行,但是最简单的用来检测浏览器是否支持 JavaScript 的方法,如果支持 JavaScript 就在 body 元素增加一个 hasJS 的 class */ $(''body'').addClass(''hasJS''); 平滑滚动页面到某个锚点
$(document).ready(function() { $("a.topLink").click(function() { $("html, body").animate({ scrollTop: $($(this).attr("href")).offset().top + "px" }, { duration: 500, easing: "swing" }); return false; }); }); 制作等高的列
var max_height = 0; $("div.col").each(function(){ if ($(this).height() > max_height) { max_height = $(this).height(); } }); $("div.col").height(max_height); 在一些老的浏览器上启用 HTML5 的支持
(function(){ if(!/*@cc_on!@*/0) return; var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split('',''),i=e.length;while(i--){document.createElement(e[i])} })() //然后在head中引入该js <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 测试浏览器是否支持某些 CSS3 属性
var supports = (function() { var div = document.createElement(''div''), vendors = ''Khtml Ms O Moz Webkit''.split('' ''), len = vendors.length; return function(prop) { if ( prop in div.style ) return true; prop = prop.replace(/^[a-z]/, function(val) { return val.toUpperCase(); }); while(len--) { if ( vendors[len] + prop in div.style ) { // browser supports box-shadow. Do what you need. // Or use a bang (!) to test if the browser doesn''t. return true; } } return false; }; })(); if ( supports(''textShadow'') ) { document.documentElement.className += '' textShadow''; 获取 URL 中传递的参数
$.urlParam = function(name){ var results = new RegExp(''[\\?&]'' + name + ''=([^&#]*)'').exec(window.location.href); if (!results) { return 0; } return results[1] || 0; } 禁用表单的回车键提交
$("#form").keypress(function(e) { if (e.which == 13) { return false; } });
当支持 JavaScript 时为 body 增加 class /* 该代码只有1行,但是最简单的用来检测浏览器是否支持 JavaScript 的方法,如果支持 JavaScript 就在 body 元素增加一个 hasJS 的 class */ $(''body'').addClass(''hasJS''); 平滑滚动页面到某个锚点
$(document).ready(function() { $("a.topLink").click(function() { $("html, body").animate({ scrollTop: $($(this).attr("href")).offset().top + "px" }, { duration: 500, easing: "swing" }); return false; }); }); 制作等高的列
var max_height = 0; $("div.col").each(function(){ if ($(this).height() > max_height) { max_height = $(this).height(); } }); $("div.col").height(max_height); 在一些老的浏览器上启用 HTML5 的支持
(function(){ if(!/*@cc_on!@*/0) return; var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split('',''),i=e.length;while(i--){document.createElement(e[i])} })() //然后在head中引入该js <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 测试浏览器是否支持某些 CSS3 属性
var supports = (function() { var div = document.createElement(''div''), vendors = ''Khtml Ms O Moz Webkit''.split('' ''), len = vendors.length; return function(prop) { if ( prop in div.style ) return true; prop = prop.replace(/^[a-z]/, function(val) { return val.toUpperCase(); }); while(len--) { if ( vendors[len] + prop in div.style ) { // browser supports box-shadow. Do what you need. // Or use a bang (!) to test if the browser doesn''t. return true; } } return false; }; })(); if ( supports(''textShadow'') ) { document.documentElement.className += '' textShadow''; 获取 URL 中传递的参数
$.urlParam = function(name){ var results = new RegExp(''[\\?&]'' + name + ''=([^&#]*)'').exec(window.location.href); if (!results) { return 0; } return results[1] || 0; } 禁用表单的回车键提交
$("#form").keypress(function(e) { if (e.which == 13) { return false; } });
jquery根据value值 选择select
$("select[name=bankName] option[value=''3'']").attr("selected","selected");
10 个很棒的 PrestaShop 电商主题
PrestaShop是一款针对web2.0设计的全功能、跨平台的购物车套件,能够部署在支持PHP5的服务器端。PrestaShop具有良好的自定义性,安装方便,且体积非常轻巧,整个程序只有大约6M。PrestaShop的后台以电子商务模式设计,功能强大。
PrestaShop的主要特性包括:
支持不限制的支付方式
支持RSS
支持短消息提醒功能
多语言支持
支持多种搜索方式
支持商品描述和用户评论
支持商品图片的缩放
支持商品预约
支持主题更换
支持购物卡反馈等
这里我们向你介绍 10 个很棒的 PrestaShop 的主题:
Leo TShirt – free Responsive Prestashop Theme
Clothes Theme
Prestashop Apparel Theme
OT Jewelry
Just Shoes Template
Perfume store
OT Ceramic
Element theme prestashop
OT ValuPat
Clean and Simple
10 个很棒的学习 iOS 开发的网站
这里罗列了一些不同的网站,教你如何创建用户界面和伟大的应用程序以及App Store的开发。这些教程中的大部分是完全免费的。
1) Apple Learning Objective C
2) Design then Code
3) Mobile Tutsplus
4) Team Tree House
5) Introduction to iOS Development Coding your First Application
6) Stackoverflow – iOS
7) iPhone App Development Where to Start
8) iPhonedev
9) Lynda
10) Raywenderlich
via zoomzum
11个很棒的 AngularJS 工具
AngularJS 工具对你开发 AngularJS App 项目非常有帮助,下面的这些工具尤其适合用于创建单页面 WEB 应用。今天分享 11 个对WEB开发者非常有帮助的 AngularJS 工具,如果你还有其他很棒的工具,请在评论中留言让我们知道。
1. AngularFire
AngularFire 提供了一种非常容易的创建 AngularJS 应用后台的方式,提供了灵活的API,3种方式的数据绑定,以及快速的开发能力。
2. Protractor
Protractor 是一个 AngularJS 应用程序终端到终端的测试框架。Protractor 可以在真实的浏览器中运行测试你的程序。
3. Aptana
使用业界领先的WEB应用程序 IDE 来快速简便的构建 WEB 应用。Aptana Studio 利用了 Eclipse 的灵活性,并把它集成到一个功能强大的Web开发引擎。
4. Lumx
第一款基于 AngularJS 和 Google Material Design 的响应式前段框架。
5. Mobile Angular UI
Mobile Angular UI 是一个使用BootStrap 3 和 AngularJS 创建 HTML5 应用的前段框架。
6. UI Bootstrap
由 AngularUI 团队开发的,纯 AngularJS 编写的 BootStrap 组件。这个库包含了一套基于 BootStrap 标记和CSS的AngularJS指令。
7. Yeoman
Yeoman 帮你快速启动新的项目、提供最佳的实践以及使你保持高效的工具。
8. Videogular
Videogular 是一个由AngularJS 开发的支持PC端和移动端的视频应用框架。Videogular 使用 HTML5 的 video 标签,所以你可以添加任何你想要的。
9. Appery.io
Appery 是一个基于云平台的,使用私有/公共云方案开发移动端响应式应用的框架。
10. Colt.io
COLT 是一个小的程序,可以实时的测试、创建移动端、WEB端和基于桌面的应用程序。
11. Angular Gettext
Angular gettext 是一个 AngularJS 超级简单的翻译支持。所有的都用英语编写,并且标记出哪部分需要翻译。
via:dzinepix,由 Specs 翻译整理,发布在 Coder资源网,转载请注明来源。
今天关于5个很棒的 React.js 库,值得你亲手试试!和react常用库的介绍到此结束,谢谢您的阅读,有关10 个很棒的 jQuery 代码片段、10 个很棒的 PrestaShop 电商主题、10 个很棒的学习 iOS 开发的网站、11个很棒的 AngularJS 工具等更多相关知识的信息可以在本站进行查询。
本文标签: