是否有必要从React.Component扩展React组件?

时间:2015-10-06 10:44:52

标签: javascript reactjs

在React 0.13之后,我们可以使用ES6 Class来创建如上所述的React组件:

   <ul>
   @foreach($users as $user)
    <li>

  {{$user->name()}}
   </li>
   @endforeach
   </ul>
Here is my model



   <?php
   namespace Horsefly;
   use DB;
   use Illuminate\Database\Eloquent\Model;

   class profile extends Model
    {
      $users = DB::table('users')->get();
     }

但是,如果偶尔忘记键入class A extends React.Component { // ... } ,只要我不使用extends React.Component之类的简单方法,组件A对我来说仍然有效。

我开始认为React组件必须从this.setState()扩展。

在像FLUX或Redux这样的架构中,有智能的React组件和愚蠢的React组件。智能组件连接到数据存储,而哑组只接收来自父项和渲染的道具。我已经在React 0.14中知道我们可以简单地写一个纯粹的愚蠢的功能。

然而,在智能组件中,也存在一些组件具有状态而另一些组件没有区别的差异。如果键入React.Component与不是extends React.Component之间的区别仅仅是this.setState(),我就不会{{1当我的组件不需要管理自己的状态时。

1 个答案:

答案 0 :(得分:1)

  

React组件是否有必要从React.Component扩展?

不在React v0.13而是it will be in v0.14

  

ES6组件类现在必须扩展React.Component才能启用无状态功能组件。 ES3 module pattern将继续有效。

因此,为了支持函数作为简单的无状态组件(你提到的),似乎类需要扩展React.Component