- 博客(16)
- 收藏
- 关注
转载 抛砖引玉:使用docker对Meteor应用进行产品级部署(入门篇)
有许多种部署Meteor应用的方法:编译成node.js应用并自行部署(pm2、forever……)使用mup或mupx在Galaxy平台进行部署使用docker各种部署方案有各自的特点,本文不做详细比较,在这里主要简单介绍如何在daocloud平台使用docker以最简洁的方式进行meteor应用部署:创建meteor应用在项目根目录下添加Doc...
2016-06-24 13:57:00
263
转载 在 React 中使用 semantic-ui
React 易于使用 inline-style,而 semantic-ui 和一些特殊情况不得不使用样式文件。另外,浏览器兼容性问题也需要解决。解决方案:同时使用 post-css + autoprefixer 和 inline-style-prefixer。注意:semantic-ui 官网建议在 meteor 中使用 less-autoprefixer 来进行编译。为了统筹大...
2016-06-19 05:55:00
317
转载 抛砖引玉:如何在 React 中使用 semantic-ui 的 fixed menu 和 sidebar
semantic-ui 的 fixed menu 和 sidebar 放在 body 中运行的很好(这是 sui 的默认设计),但是在 react 应用中,组件体系都是放在比较深的地方,很难直接放在body中,这时,问题很多。基本思路:创建一个 sidebar 组件,以此作为 sidebar 的 context,并将内容全部放到 pusher 部分中。如此构建,会发现很多问题:n...
2016-06-18 00:42:00
327
转载 React:纯属性(pure prop),受控属性(controlled prop),半受控属性(half-controlled prop),一次性属性(onetime-prop)...
Props是React组件的参数,而一个组件还可能拥有其内部状态。这里的状态是抽象的状态,不仅仅指state(欢迎补充例子)。Props可以由外部调用者改变,但是组件自己不能改变自己接收到的Props,虽然组件可以监听Props的改变。相反,组件可以改变自己的状态,而外部调用者却不应该直接改变组件内部状态。在传统的对象模型里,对象间可以互相传递消息,消息接收者受控地改变状态。当然...
2016-04-09 17:39:00
388
转载 笔记:少做,多得
以前常听的一句话是:write less,do more然而今天我要说的一句话是:write less,get more主旨是:少创造东西,少很多烦恼之前一个阶段,我由一片空白,通过大量学习,逐步学到了不少花拳绣腿,于是急着在任何地方施展,各种混用,各种为了一点小功能而制造轮子……然后,很光鲜亮丽地,我确实实现了不少本来没有的东西。这是现在,我却觉得累,因为所有你创造的东...
2016-03-14 14:37:00
137
转载 Meteor:关闭所有tab时退出登录
功能描述:在浏览器退出时(所有tab关闭时)退出登录需求来源:支持类似传统网页登录时的remember me选项背景:Meteor应用中,用户登录后,会在浏览器的localStorage保存resume token, 所以下次再使用该浏览器打开同一meteor应用时,会自动登录。有时,我们希望应用支持在浏览器退出时(所有tab关闭时)即退出登录,然而meteor被没有对这项功能的...
2016-01-05 23:41:00
170
转载 React:将html元素统一管理
写React组件,基本上使用jsx文件,在render方法中返回html节点。然而,在jsx中的html标签中的js代码,只能是简单运算,对象,或函数调用,并不支持if-else或for-while等结构,因此,有时我们需要根据条件决定不同元素,或决定是否显示某元素时,不得不将这段代码抽到render-return以外,如此,程序虽然可以运行,代码上却破坏了html骨架结构,不便于样式控...
2015-12-02 02:36:00
139
转载 Meteor:绑定微博
微博使用Oauth2.0向第三方授权,具体信息参考oauth2和微博官方文档。meteor的用户系统集成了第三方账号绑定功能。实际上,在meteor的用户系统中,用户通过账号关联的service进行认证(登录),service可以是weibo、twitter、google等第三方账户,也可以是password(也即,你可以构建一个不包含password service,纯基于第三方账...
2015-09-04 11:31:00
206
转载 Meteor:应用UI状态
Meteor应用的UI状态该如何存放?这里介绍几种方法。SessionSession是meteor提供的一个前端全局reactive数据源。使用方法简单,功能也相对简陋,适用于页面结构简单的单页应用。Local Collection前端通过new Mongo.Collection(null)创建一个local collection,相对于session,可以提供功能更强大...
2015-09-03 23:40:00
115
转载 Meteor:延迟补偿
所谓延迟补偿,即在前端执行某项数据变更业务之后,不等后端返回执行结果,前端先行模拟执行,以尽快呈现结果给用户。如果服务端返回执行成功,则前端不需要进行任何变更渲染。如果服务端返回执行失败,则前端根据后端返回信息进行修正渲染。延迟补偿得以实现的基础,是前后端数据协作机制。具体来说,原本整个数据变更流程是:前端method调用->后端method执行->后端执行模型操作-&g...
2015-09-03 23:14:00
336
转载 Meteor:前后端数据协作机制
对于Meteor应用来说,模型是不透明的,即,虽然在后端进行建模和模型操作、业务操作控制,前端仍然需要了解模型结构以正确进行前端业务。前端与数据的关系,主要有变更和查询两类。前端若要执行数据变更,需要调用后端提供的methods(参考)。前端对数据的查询,主要通过pub/sub模型来实现。后端可以有条件地发布某些集合的子集,而前端可以根据需求订阅这些集合,即,前端维持着一份后...
2015-09-03 23:05:00
205
转载 Meteor:客户端数据变更操作
关于客户端进行数据变更操作,meteor提供了两套机制:客户端CRUD+服务端deny/alllow服务端methodsCRUD操作的层次是在数据模型级别,而methods的操作层次是在业务级别,这也对应了它们的权限控制级别。个人认为,在客户端直接进行CRUD操作(数据模型级别的操作),表面上灵活很多,但是很难进行权限控制,很容易暴露安全问题,并因此反而增加程序复杂度...
2015-09-03 22:51:00
159
转载 Meteor:组件思想
受React组件思想启发,本文讨论在Meteor客户端应用组件化思想,以Spacebar模板语言为例。所谓前端组件(我的定义),是一组html代码以及相关样式、行为的封装。它可被复用,通过传递参数进行初始化,并可以调用其定义的方法对其进行控制。并且,其状态,样式都是局部封装的,不会扩散并影响全局。典型地,一个组件具有data和states(React中叫做props和statue...
2015-09-03 22:47:00
143
转载 Meteor: 如何复用node.js包或代码
Meteor基于Node.js,但是却有自己的包管理系统(atmosphere)以及代码加载机制,且meteor是非异步的,这些都意味着,node.js包(npm package)和代码通常不能直接用于meteor程序。这里分享三种方法以在meteor中复用node.js包和代码。meteorhacks:npm +meteorhacks:asyncnpm+async是复用n...
2015-06-25 22:35:00
137
转载 Nvm: node.js(io.js)版本管理器
nvm(Node Version Manager)是一款node.js版本管理软件,支持io.js。为什么要对node.js进行版本管理?方便生产环境对node.js进行版本升级方便开发环境切换不同node.js版本(以进行开发、调试、适配等)方便隔离node.js和系统环境,删除更容易其他1024个理由……总之,如果你需要安装node.js(io.js)...
2015-06-11 16:51:00
471
转载 Meteor: 关于Template实例(instance)和数据(data)
实例按面向对象编程语言的说法,我们编写Template(html、helpers、events、lifecycle)时,相当于编写了一个类,而渲染Template的时候,则创建了一个它的实例。我们可以在这个实例上添加变量,并在合适的地方引用它。那么,如何访问这个实例?在lifecycle中(onCreated、onRendered、onDestroyed),可以通过t...
2015-05-28 15:43:00
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人