title: Should I define model classes?
body: <p>React uses Flux architecture and it is said in <a href="https://reactjs.org/docs/thinking-in-react.html" rel="noreferrer">https://reactjs.org/docs/thinking-in-react.html</a> that React has two models - <code>state</code> and <code>props</code>. And there are some suggestions for model management in React <a href="https://reactjs.org/community/model-management.html" rel="noreferrer">https://reactjs.org/community/model-management.html</a> - but all of this seems to some additional layers to enhance the Flux. The big questions to which I am seeking the answers are:</p>
  
  <ul>
  <li>Should I define model classes in React? I.e. if I have Customer class notion, then I can: 1) define the attributes of Customer directly as the attributes of <code>state/props</code> 2) define the attributes of Customer as the attributes of <code>state.customer/props.customer</code>; 3) define some JavaScript template/class <code>Customer</code> separately and simply say, that <code>state.customer/props.customer</code> is of type <code>Customer</code> and don't repeat attributes in the <code>state/props</code>. I feel, that 3) is the right approach, isn't it?</li>
  <li>If 3rd options (of the previous point) is the right approach, then how can I define the <code>Customer</code> template and how can I define that <code>state.customer/props.customer</code> is of this template? I could use those template in some serialization, some model validation tasks as well and I could use in ReactNative project as well.</li>
  </ul>