elmentsh

elmentsh 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

elmentsh 赞了回答 · 8月27日

解决React数据获取为什么一定要在componentDidMount里面调用?

我一直想找到合理的答案,但是呢,这里说的感觉都不合理。
1.获取数据肯定是以异步方式进行,不会阻碍组件渲染(只会耽误请求发送这个时间),然后接着渲染,等异步返回数据后,如果成功再进行setState操作,setState是将更新的状态放进了组件的__pendingStateQueue队列,react不会立即响应更新,会等到组件挂载完成后,统一的更新脏组件(需要更新的组件)。放在constructor或者componentWillMount里面反而会更加有效率。
2.再说说React-Redux,要想让组件更新,必须要有用connect(...)(yourComponent)封装的容器(高阶)组件,这个组件会监听store变化,内部调用setState触发你的组件更新。数据处理都是通过dispatch(action)进行,自己并不会在组件的声明周期内直接ajax获取取数据。使用redux这个问题就成为了再组件声明周期的哪个节阶段dispatch(action)获取数据才合理?
总结:
我认为原因有:
1.跟服务器端渲染(同构)有关系,如果在componentWillMount里面获取数据,fetch data会执行两次,一次在服务器端一次在客户端。在componentDidMount中可以解决这个问题。
2.在componentWillMount中fetch data,数据一定在render后才能到达,如果你忘记了设置初始状态,用户体验不好。
3.react16.0以后,componentWillMount可能会被执行多次。

关注 32 回答 10

elmentsh 提出了问题 · 1月2日

zepto跟html2canvas冲突如何解决?

image.png

关注 1 回答 0

elmentsh 赞了回答 · 2019-04-28

解决mongodb 用户点赞功能怎么设计比较合理?

在此提出第三种方案,在 posts(文章) 集合中储存对该文章点赞的用户的 _id 的数组,例如:

// posts
{
    _id: ObjectID('4e7020cb7cac81af7136236b'),
    users_like_this_post: [
        ObjectID('4e7020cb7cac81af71362361'),
        ObjectID('4e7020cb7cac81af71362362')
    ]
}

查对一个文章点赞的用户:

post = db.posts.findOne({_id: ObjectID('4e7020cb7cac81af7136236b')});
console.log(post.users_like_this_post);

查一个文章的点赞数量:

post = db.posts.findOne({_id: ObjectID('4e7020cb7cac81af7136236b')});
console.log(post.users_like_this_post.length);

查点赞过 100 的文章:

posts = db.posts.find({'users_like_this_post.100': {$exists: true}});

查 user 点赞过的文章:

posts = db.posts.find({users_like_this_post: user._id});

user 对 post 点赞:

db.posts.update({_id: post._id}, {$addToSet: {users_like_this_post: user._id}});

user 对 post 取消点赞:

db.posts.update({_id: post._id}, {$pull: {users_like_this_post: user._id}});

PS: 以上代码未经测试,请自行参考文档进行测试。

关注 6 回答 3

elmentsh 回答了问题 · 2019-04-15

解决急求 node 图片裁切 后台怎么处理

但是这种在高并发的情况下失败率很高

关注 7 回答 5

elmentsh 关注了用户 · 2019-02-14

五月花开 @zuozuomu

仰望星空,也要脚踏实地。

关注 879

elmentsh 关注了用户 · 2019-02-14

LHH大翰仔仔 @lhhli

关注 2590

elmentsh 关注了专栏 · 2019-02-14

腾讯云技术社区

最专业的云解读社区

关注 11482

elmentsh 关注了专栏 · 2019-02-14

前端工匠公众号

我是浪里行舟,每周分享至少两篇前端文章,致力于打造一系列能够帮助初中级工程师提高的优质文章

关注 7016

elmentsh 关注了专栏 · 2019-02-14

技术放肆聊

公众号:技术放肆聊

关注 2278

elmentsh 关注了专栏 · 2019-02-14

疯狂的技术宅

本专栏文章首发于公众号:前端先锋 。

关注 24309

认证与成就

  • 获得 1 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2016-08-25
个人主页被 83 人浏览