On the other hand, tools like Vue.js and React.js, while being quite capable of producing whole applications, can also be dropped as components into applications written with server-side technologies such as PHP, Ruby on Rails, or Node.js. These components can add the sort of functionality that modern users have come to expect without sacrificing the security and stability of back-end code.
Focus on design and user-experience first; get a solid idea of where your app or site is going before thinking about the code. You may have to consciously force yourself to resist going down the “how” path at times, but thinking about how technically we’ll satisfy the demands of the project too early can lock us into sub-par implementation decisions.
When screens and functions have taken shape in the form of drawings or wire-frames, it’s a lot easier to make balanced technical decisions. It’s like a 30,000-foot viewpoint from which you can see the whole picture. Look for pockets of compartmentalized data or functionality that might do well as components. Identify places where user choices will require a prompt update with more information or screen shifts. Think about how you’ll organize information in the database relative to the presentation of data to the user.