title: Javascript driven ListView and UI libraries
body: <p>My background is from mobile development and I'm quite new to Javascript so I'm quite confused about the following.</p>
  <p>I'm trying to build a JS module that handles a list of data and displays them, so I'm looking for something like JS ListView with the following features:</p>
  <ul>
  <li>it accepts an array of objects</li>
  <li>it accepts an HTML template (in any format) to render items</li>
  <li>it renders only visible views so it can handle large datasets (virtual list)</li>
  <li>it can handle item click to return index/underlying object</li>
  <li>it supports data modification (item add/remove)</li>
  <li>it's free</li>
  <li>not under GPL (as long as I understand it correctly) so it can be used in a project without the obligation to submit the code to open source</li>
  <li>it supports filtering/sorting (this one is optional)</li>
  </ul>
  <p>As a mobile developer those requirements seem to be pretty default to me, but I'm not able to find any suitable solution for several days already.</p>
  <p>The options I've checked are:</p>
  <ul>
  <li><a href="https://dhtmlx.com/docs/products/dhtmlxList/" rel="nofollow noreferrer">dhtmlxList</a> - the closest solution I've found so far, but it's under GPL v2 that requires posting the code to opensource.</li>
  <li><a href="https://v2.vuejs.org/v2/guide/list.html" rel="nofollow noreferrer">vue</a>: lacks virtualization/filtering</li>
  <li><a href="http://listjs.com/api/" rel="nofollow noreferrer">lists.js</a> - great one, but I can't get how to handle item click to get the underlying object/item index</li>
  <li><a href="https://github.com/sergi/virtual-list" rel="nofollow noreferrer">vlist</a> - a good one, but doesn't handle data modifications though</li>
  <li><a href="https://webix.com/" rel="nofollow noreferrer">webix</a> - looks great, but seems to be too &quot;paid&quot;</li>
  <li>bunch of libraries that I even can't already find links to</li>
  </ul>
  <p>I believe I'm just looking in the wrong direction or using the wrong search terms as it all seems to be pretty standard and any input is much appreciated.</p>
  <p>And sorry for stupid question, but in general, how do you handle common UI elements in JS world?
  Is there any comprehensive libraries of UI elements for JS which is free and not under the GPL license?</p>