Component Design for JavaScript Frameworks