CST438 - Week 2 Reflection

         This week's offering from CST438 demonstrated the usefulness and sensibilities of a web development framework known as React. Instead of manipulating a web page directly via its Document Object Model (DOM), React uses a component-based architecture that updates a copy of the DOM to determine which portions of the page need to be changed. Lab 3 familiarized the class with the fundamental aspects of the React framework: reusable components for the user interface such as a login page, props to pass inputs between relevant component, JSX (which exists somewhere between JavaScript and HTML), state management, sending user changes to the backend, and making REST API calls. These concepts became increasingly practical throughout the lab as controlled form inputs, event handlers, session storage, conditional rendering, and REST API communication combined to create responsive user experiences while minimizing unnecessary communication with the backend. As with the previous week's emphasis on relying upon existing frameworks over reinventing common functionality, React transforms much of the manual work involved in constructing dynamic web applications and allows the developer to focus instead on implementing product features.

        I see how many of React's greater strengths can simultaneously be its weaknesses. JSX's syntax--which resembles both HTML and JavaScript--demonstrates the framework's versatility by allowing application logic and user interface definitions to coexist within the same component file. This versatility raises the knowledge ceiling required to fully leverage the framework. A developer must not only possess a solid understanding of JavaScript but also comfortability with React's component lifecycle, state management, routing, hooks, and overall design to maximize its effectiveness. While React appears capable of producing highly organized and maintainable applications, it also introduces an additional layer of abstraction that requires a corresponding investment in understanding. Much like many of the concepts introduced throughout this course thus far, React has a tradeoff where the developer loses a small bit of simplicity for long-term scalability. 

Comments