List component using plain JS
is this a standard/right way to create and use components when using plain JS?


It's not technically wrong, but when you're writing re-usable components it's better to use prototype than to create methods in the constructor itself.

For example, 

function listComponent(){}
listComponent.prototype.create = function() { .. };
listComponent.prototype.remove = function(){ ... };
listComponent.prototype.draw = function(){ ... };


When you create the methods inside the constructor then those methods are duplicated in memory for every object created. When you use the prototype those methods only need to be defined once.

If you want to write code that feels like a class then use an actual class. (JS has those now).

Aside from that, don't store you data in the function that creates the list. Pass the data into the constructor or create method.


  if I can create and use objects like this, what is the benefit of
  creating such component using say react.js?


If all you need is to generate a simple list then there is no reason to use react. React has a lot of components that your code doesn't have, like interactive features, etc. 

If you take a few minutes to read about exactly what react is and does the answer to this question will be clear.