Javascript 您在组件中使用纯函数还是非纯函数?

Javascript 您在组件中使用纯函数还是非纯函数?,javascript,reactjs,functional-programming,Javascript,Reactjs,Functional Programming,所以我对函数式编程和不变性有了更多的了解 我在编写react组件时经常做的是一个助手函数,它根据props/state返回一些东西 目前,我编写纯函数和非纯函数,尽管它们中的大多数可能是纯函数 两种情况的示例: //纯函数 const posts=this.props.posts; const postId=this.props.selectedPostId; constpurefunc=(postId,posts)=>(posts.find(post=>post.id==postId); /

所以我对函数式编程和不变性有了更多的了解

我在编写react组件时经常做的是一个助手函数,它根据props/state返回一些东西

目前,我编写纯函数和非纯函数,尽管它们中的大多数可能是纯函数

两种情况的示例:

//纯函数
const posts=this.props.posts;
const postId=this.props.selectedPostId;
constpurefunc=(postId,posts)=>(posts.find(post=>post.id==postId);
//不纯函数
常量输入=()=>(
this.props.posts.find(
post=>post.id==this.props.selectedposted
)

)
第二种方法是将OOP风格和函数风格相结合,因此它没有真正的功能性

通过编写无状态的react组件(本质上是纯函数),可以避免完全使用
this
上下文


如果不可能,我建议使用第一种方法-即,将道具传递给函数,不要让函数本身访问
上下文。

是一种动态绑定,用于OO模式,而不是函数模式。由于代表性低,我无法对您的答案进行投票,但感谢您的意见。是的我意识到后一种方法更像是一种混合方法。我尝试在可能的情况下使用功能组件,但是我总是为所有处理程序使用某种容器组件。