从毕业到现在的三年设计生涯中,对于设计我有自己的理解。从一开始的伟大梦想——通过我的设计改变世界,到现在的现实需求——设计得让人觉得有用,易用,好用。...在大学的时候,导师会叫我们只用纸笔来做原型图,这样能更直观地看出我们的想法和信息架构。刚工作的时候,我也习惯只用纸笔来画原型图,这样能快速地表达我的想法。...纸原型的好处就在于与他人沟通的时候可以进行及时修改,也容易修改,并且能随时随地完善我的想法和思路。但当我在实际工作中使用纸原型一年后,使用纸原型的诸多弊端开始暴露出来: 1. 不易保存。...我一般只需要把组件拖到页面上然后调整一下就可以了。使用一段时间后,我发现它在交互设计方面也很好用,无论是跳转页面还是在页面内做组件交互都挺快的。 ?...你可以多试几款原型工具,一般的原型工具都有免费试用,你可以先选择一个学习成本不高,又简单易学的原型工具,例如Mockplus。如果你喜欢在纸上画原型,相信你跟我一样会喜欢它的。
---- 问: 在linux系统里,普通用户目录是在 /home 下,root用户目录在 /root,因此全部用户共享目录的。 那如果我们要装一个东西的话,是不是只用装一遍?...(比如说ohmyzsh之类的) 我之前在自己服务器上,每次都需要安装两遍,一次只有当前那个用户生效,这是为什么呢?...---- 答: 不一定,当我们说我们在 linux 装了一个东西,指的是:「我们装了一个命令,可全局执行」。此时是将该命令放在了全局执行目录(或者将该命令目录放在了 $PATH)。...哦对,PATH 该路径列表可自定义,而每一个用户都可以有独立的 PATH 环境变量。...所以,要看一个命令是所有用户共享还是仅对当前用户有效,具体要看该命令是怎么装的,可以看看 which command 进一步排查。
这就是他们为什么提供了这个非常有用的 UIExplorer Project项目。它真的可以节省你很多猜测和尝试的时间。...尽管,你使用 NPM 并且有一个 node 服务 在后台运行,但你的代码并不是真正运行在 nodejs 上的。因此是不可以使用 NodeJs 包的。...No. 5 推送通知很不靠谱 在 React Native 中推送通知很不靠谱。这项特性是在 0.13 版上是能有效使用的,但你得在你的 Xcode 工程中配置好你的项目(添加库,添加头文件等等)。...在 0.12 版或者之前的版本中甚至对后来的 IOS 版本不支持。你需要自己打补丁来实现。这篇文章相当有用。...直到最近的[文档](https://facebook.github.io/react-native/docs/image.html)中才提及这点。浪费了我好多时间。
如果你想了解更多这方面的信息,请查看我们的文章 Node.js 架构以及何时在项目中使用。 3. EventEmitter 做了什么?...测试应用程序时使用 stub,模拟给定组件或模块的行为,你可以将精力集中在要测试的代码部分。通过使用 stub 代替与测试无关的组件,不必担心外部组件会影响结果。...例如,如果正在测试的组件在预期测试的部分之前有一个文件读取操作,则可以使用 stub 来模拟该行为并返回模拟内容,而不用实际读取文件。...在 Node.js 中,我们使用像 Sinon 这样的库来实现(译者注,Sinon 在测试中替换某部分代码,减少测试项编写的复杂度 https://sinonjs.org)。 14....通过校验和验证包的完整性来提供更好的安全性,保证在某个系统上运行的包在任何其他系统中的工作方式完全相同,这就是为什么选择 yarn 而不是 npm 来进行包管理。
但是我还是要学react-native,不要问我为什么,因为我相信一门解决了原生app,开发周期长,开发成本高,升级代价大的语言一定会火,而且react语言看起来那么熟悉,组建式的布局方式,让没有接触过...新闻 天猫技术团队使用React Native代替H5实现产品化落地 饿了么蜂鸟众包团队率先实现通知模块React Native Android 线上发布 体验地址 鸡汤总览 了解React-native...react-native中的Navigator组件进行页面导航 『译』React Mixin 的使用 项目级别架构flux Flux是Facebook用来构建客户端Web应用的应用架构。...它利用单向数据流的方式来组合React中的视图组件。...适用于react/react-native Facebook:MVC不适合大规模应用,改用Flux 谈一谈我对 React Flux 架构的理解 使用 React 和 Flux 创建一个记事本应用 Redux
remove方法可以根据key值取消订阅 工作中的应用 插广告 先给大家看一个链接,在这个新闻转码页的项目中,我负责写下面推荐流的内容(就是喜欢的人还看了那里)。...圈起来的广告部分,这里并不是我来负责的,需要另外一个负责对接广告业务的大牛来实现的。那么,他想要在我的推荐流中插入广告应该如何实现呢?...所以我只需要在我开发的代码中写一句话,利用上面实现的event来表示一下 // 省略.... render() { // 我只在渲染的时候 // 把约定好的key和他需要的page页码传过去就可以了...关键的问题就是时机,我应该什么时候加打点呢?...讲真-这可是node的核心模块 用过node的朋友们,应该对这个模块不陌生,可以说这个在node中真的是很重要的模块了,在使用后发现,这完全是个大写的发布订阅模式啊 简直是无所不在的存在啊,那么废话不再
windows稍微麻烦,choco可以代替brew,然后安装python2:choco install python2,然后安装Android环境,推荐Android Studio(或者只装android...等类似错误是因为安装bufferutil、utf-8-validate等包出错,可以直接跳过,不影响开发,一般情况是因为在windows环境依赖的build环境不完整,总之是一个大坑,很多现在的这种包在...windows底下都会出错,不想折腾的就直接安装VS 2015选择自定义安装第三方的一些工具来解决,具体就不赘述了,找了一篇文章自己琢磨吧windows 安装环境 cd app, react-native...run android or react-native run-ios,出错一般是因为模拟器没有启动或adb通道被占用,mac环境一般没什么问题,windows环境推荐真机调试,模拟器实在是一个慢啊,...可以adb devices查看连接的手机 PS 安装过程中可能会遇到很多错误,需要耐心,大多是: 一些build工具缺失和依赖包安装失败,检查nodejs、npm版本和python版本以及环境变量是否正确
——塞涅卡 在 Node.js 中一个很重要的模块 Events(EventEmitter 事件触发器),也称为发布/订阅模式,为什么说它重要,因为在 Node.js 中绝大多数模块都依赖于此,例如 Net...一些基础 API 的使用 在 Node.js 的一些核心模块(Stream、Net)中是如何使用 EventEmitter 的?...() 来实现的继承,因此在 Node.js 12x 版本中你会看到如下代码实现。...,对于缓存雪崩的解决方案,网上也不乏有更好的解决方案,但是在 Node.js 中我们可以利用 events 模块提供的 once() 方法来解决。...总结 许多 Node.js 成功的模块和框架都是基于 EventEmitter 的,学会 EventEmitter 的使用,并且知道该在什么时候去使用是非常有用的。
Events 模块是我公众号 Node.js 进阶路线的一部分 面试会问 说一下 Node.js 哪里应用到了发布/订阅模式 Events 模块在实际项目开发中有使用过吗?具体应用场景是?...模拟实现 Node.js 的核心模块 Events 发布/订阅者模式 发布/订阅者模式应该是我在开发过程中遇到的最多的设计模式。...(以订阅报纸作为例子的原因,可以增加一个 type参数,用于区分订阅不同类型的公众号,如有的人订阅的是前端公众号,有的人订阅的是 Node.js 公众号,使用此属性来标记。...知道的小伙伴可以告诉我为什么要这样做哦。...的应用场景 不能try/catch的错误异常抛出可以使用它 好多常用模块继承自EventEmitter 比如 fs模块 net模块 面试题会考 前端开发中也经常用到发布/订阅模式(思想与Events模块相同
每次数学建模看周老师写的东西都觉得自己很菜,老师可以在课堂上信手拈来一段仿真代码,也可以使用LaTeX绘出让我目瞪口呆的动图,我很少有崇拜他人的时候,所以我什么时候才能和周佬一样,可能就像老师说的,你每天写
React Native是什么 Facebook于2015年9月15日发布React Native,广大开发者可以使用JavaScript...译注:我们更推荐使用WebStorm或Sublime Text来编写React Native应用。...提示:你可以使用--version参数(注意是两个杠)创建指定版本的项目。例如react-native init MyApp --version 0.44.3。注意版本号必须精确到两个小数点。...你也可以在Nuclide中打开AwesomeProject文件夹 然后运行,或是双击ios/AwesomeProject.xcodeproj文件然后在Xcode中点击Run按钮。...在iOS Emulator中按下⌘-R就可以刷新APP并看到你的最新修改! 完成了! 恭喜!你已经成功运行并修改了你的第一个React Native应用。
) /g 为全局匹配, 只要遇到了 和 , 就用''这个来代替。...replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。...hash.set(obj, cloneObj) for (let key of Reflect.ownKeys(obj)) { // 针对能够遍历对象的不可枚举属性以及 Symbol 类型,我们可以使用...可以去这里了解更多apiObject.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的proto,Object.create 如果该参数被指定且不为 undefined,该传入对象的自有可枚举属性..._events中拿出相应的监听事件进行执行(注意多个事件的执行)emit的如下代码EventEmitter.prototype.emit = function(eventName,...args) {
) /g 为全局匹配, 只要遇到了 和 , 就用''这个来代替。...replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。...hash.set(obj, cloneObj) for (let key of Reflect.ownKeys(obj)) { // 针对能够遍历对象的不可枚举属性以及 Symbol 类型,我们可以使用...可以去这里了解更多api Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的proto, Object.create 如果该参数被指定且不为 undefined,该传入对象的自有可枚举属性..._events中拿出相应的监听事件进行执行(注意多个事件的执行) emit的如下代码 EventEmitter.prototype.emit = function(eventName,...args)
]]属性可以通过__proto__属性来访问(虽然暴露了这个属性但不推荐使用,平时更多使用Object.getPrototypeOf( )方法来获取,也可以通过Object.setPrototypeOf...为了Worker拥有消息收发的能力,需要让它从EventEmitter类来继承发布订阅能力,所以这里将EventEmitter.prototype对象添加到Worker的原型链中: Object.setPrototypeOf...接下来的这句就有些费解,看起来好像没起到什么作用,你可以自己思考一下,最后我们再揭晓答案: Object.setPrototypeOf(Worker,EventEmitter); 一图胜千言,直接看原型链结果...接下来执行的是: EventEmitter.call(this); 也就是将实例作为this透传到EventEmitter构造方法中去执行,在官方文档中可以找到它实际上执行的是EventEmitter.init...Object.setPrototypeOf(Worker,EventEmitter) 你可以很清楚地看到实例的原型链和上面这条语句实现的功能没什么关系。
示例如下: E:\develop\nodejs\; 查看node版本号: 安装完成后在cmd中输入 npm -v 回车,如下图: ?...查看node版本号 查看npm版本号: 在cmd中输入 npm -v 回车,如下图: ?...: yarn中文网 https://yarn.bootcss.com/ 我这里选择的版本是1.7.0,你也可以选择其他版本,下载好了之后,双击安装,然后把yarn安装路径配置path环境变量中。...(七)说明 1.安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn代替npm install命令,用yarn add 某第三方库名代替npm install --save 某第三方库名...创建项目 (二)手动打开安卓模拟器 可以使用脚本打开, (二)编译并运行 React Native 应用 在刚创建的rn项目根目录,打开命令行,输入react-native run-android命令,
最近使用react-native参与开发了个应用,记录下其中踩的一些坑。本人使用的是mac电脑进行开发,本文仅对此平台进行记录?...如果需要改变的数据,则可以使用state。 this的绑定 ES6中自定义的函数里面使用this关键字,需要对其进行绑定操纵,否则this的指向会指向空。...,应该在子组件中做下面的处理: 在componentWillReceiveProps钩子内处理 componentWillReceiveProps钩子函数上传入props参数代替函数内的this.props...key值是name,那么,如果我使用一个变量代替name需要怎么写呢?...答:使用中括号[]来包裹就行了。
领取专属 10元无门槛券
手把手带您无忧上云