Ychow Xiao
Ychow Xiao
我将翻译https://github.com/unbug/docs/blob/master/1.0/docs/devguide/data-binding.md 预计20150615号完成。
> 原文链接: 很多人对React新增的Hooks非常感兴趣,其中也包括我。 当看完了如何使用Hooks的[教程](https://reactjs.org/docs/hooks-intro.html)后,接着你就会考虑:如何使用Hooks来重构你的应用或React组件?中途又会遇到哪些问题? ## 简介 这篇文章所要介绍的内容是比较简单的,但是和其他文章的思路不同。关于Hooks,大部分作者习惯于使用一个现成的应用,一步步演示如何使用Hooks来重构。但是这还不足够好。 为什么?因为每一个应用都有其特定的使用场景。 这篇文章我会演示众多应用中普遍存在的一些问题。当然了,我们会通过几个范例,逐步由浅入深。 ## 为什么使用React Hooks重构 我不打算解释你为什么要这样做。如果你想知道其理由,可以去[官方文档](https://reactjs.org/docs/hooks-intro.html#motivation)中查看。 ## 开始之前 这篇文章需要你具备React Hooks 的基本使用。如果你想再学习下,[这篇文章](https://alligator.io/react/react-hooks/)也许可以帮助你。 接下来我们就可以开始看看当你使用Hooks来重构你的应用所会遇到的问题。 ## 第一个问题: 如何把类组件转成函数式组件(function component) 这个问题是在当你开始使用React Hooks来重构你的应用时,你所面临的第一个。 这个问题很简单:在保证功能的前提下,如何把类组件转成函数式组件? 我们通过一些范例来演示,让我们从最简单的开始。 ### 1. 没有状态(state)或生命周期函数的类组件...
你只需要在字符串前面加上 “ \u202e ” 字符,整个字符串的顺序将会被反转!不信?赶紧试试吧!
由于在开发阶段,我们可能会产生跨域(跨域的原理,这里就不赘述了。)。虽然jsonp是一种解决手段,其实它只是解决跨域的一种hack,并不推荐。这里只说说如何暂时关闭Chrome的跨域,来方便开发。 1. 找到Chrome图标,右击,选择属性 2. Google Chrome属性对话框弹出,切换到快捷方式 3. 在目标输入框里,添加上 --args --disable-web-security --user-data-dir,记住前面一定要加上空格! 4. 点击应用----> 确定。 5. 重启Chrome, 如果在地址栏下出现了一个黄色的Tips。That's OK! 
- 如果app有使用tabs,那么在真机上运行时,有的android手机tabs跑到了顶部,而在ios或者ipad上tabs还是在底部的,这是因为1.3.2以后版本默认是使用了以ios为模型的,如果想在android上tabs也是显示在底部,添加以下代码即可: ``` javascript // 在app.js里面添加 .config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { $ionicConfigProvider.platform.android.tabs.position("bottom"); $ionicConfigProvider.tabs.style('standard'); }); ``` - 在把ionic升级到1.3.2版本以后,默认的返回按钮都是带有"text"属性的,之前的版本在index.html中统一配置返回按钮样式取消"text"属性不起作用了,如果想要取消,添加以下代码即可: ``` javascript .config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { $ionicConfigProvider.backButton.text('').icon('ion-ios7-arrow-thin-left'); $ionicConfigProvider.backButton.previousTitleText(false); $ionicConfigProvider.navBar.alignTitle('center'); }); ``` - 最近遇到了一个问题,其实这问题导致的原因还是因为自己没有把 Ionic...
- 去掉iOS模拟器底部黄色警告框 打开AppDelegate.m文件。 ``` jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; ``` 替换 _dev=true_ 为_dev=false_ - 打开iOS模拟器键盘 command+K
> 好久没更新blog了,其实也不知道到底该写写什么,恰好最近在学习node还有一大堆新玩意儿,就随便写写吧。 ## 谈谈安装 - Node的安装在这里就不说了,还不知道怎么搞定的,可以看看官网 --> [https://nodejs.org](https://nodejs.org) - Express 的安装可以直接使用命令 **npm install -g express** ,安装完成后,可以输入命令 **express -V** 查看当前 express 的版本号 - 你可以使用命令 **npm install mongodb** 或是去 Mongodb 的官网([https://www.mongodb.org/](https://www.mongodb.org/))下载安装包。这里我推荐后者,前者具体原因在这里我就不说了。安装包下载好后,下一步下一步... 安装好后,使用cmd进入mongodb安装目录,而且是...
``` javascript (function() { "use strict"; ! function(i) { var n, e, r, o, t, a; return r = null, n = /WebKit\/([\d.]+)/, e = { Android: /(Android)\s+([\d.]+)/, ipad: /(iPad).*OS\s([\d_]+)/,...
当我们想在一堆值里面找寻最大或者最小的那个值时,最简便的方法就是: ``` javascript var min=Math.min(1,2,3,22,111); var max=Math.max(1,2,3,22,111); ``` 然而在实际业务场景中,一般比较的都是数组,而且会经常用到,这时候我们就可以给Array扩展一些方法,在需要用到的时候可以信手拈来。 ``` javascript Array.prototype.min=function(){ var narray=[]; for(var i=0;i
## 移动端项目: ``` javascript font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC",sans-serif; ``` ## pc端(含Mac)项目: ``` javascript font-family:Tahoma,Arial," Helvetica Neue","Hiragino Sans GB",Simsun,sans-serif; ``` ## 移动和pc端项目: ``` javascript font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti...