所以我对函数式编程和不变性有了更多的了解。
编写react组件时我经常做的是一个辅助函数,它返回基于props / state的东西。
目前我写的是Pure和Impure函数,尽管它们中的大部分都是纯粹的。
两种情况的例子:
//pure function
const posts = this.props.posts;
const postId = this.props.selectedPostId;
const pureFunc = (postId, posts) => (posts.find(post => post.id === postId);
//impure function
const impureFunc = () => (
this.props.posts.find(
post => post.id === this.props.selectedPostId
)
)
请允许我们不要评论代码的整体结构和有效性。
比较的主要方面是传递参数并对那些OR传递来自this
上下文的东西,这不像一个全局状态,但它确实感觉不像函数式编程。
您更喜欢和想到什么?
答案 0 :(得分:0)
使用第二种方法,您将结合类似OOP和函数样式,因此它不是真正的功能。
通过编写无状态的反应组件,可以避免完全使用this
上下文,这些组件基本上都是纯函数。
如果那是不可能的,我建议使用第一种方法 - 即将道具传递给函数,而不是让函数本身访问this
上下文。