통상적으로 프레임워크는 무언가 만드는 모든 것들이 제공된 것이라 보면 좋다. UI 뿐만 아니라 라우팅, 네트워크 통신을 위한 HTTP clinets, 많은 데이터를 관리하기 위한 State management까지 모든 것들이 다 들어있다. 집을 짓는 거로 비유하면 집을 짓기위한 골격이 다 있다고 생각 할 수 있고 정해진 틀 안에서 원하는 것들을 만들어 나갈 수 있다. 대표적인 것이 angular.js, 안드로이드, IOS, Vue
프레임워크는 모든 것들이 갖추어졌기 때문에 따로 찾아보고 선택할 필요 없이 정해진 것만 쓰면 되기 때문에 편해보이지만 프레임워크에서 권장되는 사항을 모두 공부해야하고, 자율성이 떨어진다. 선택할 수 있는 옵션이 없기에 정해진 규칙만 따라야 한다.
큰 골격이나 규칙이 정해지지 않았기 때문에 단 한가지의 문제를 해결하기 위해 작은 솔루션 단위를 라이브러리라 한다. 대표적인 것이 React.js. 웹 어플리케이션을 만들기 위해 다양한 것들 중에서 UI를 만들 수 있게 도와주는 라이브러리. 네트워크 통신이나 라우팅이 필요하면 거기에 맞는 라이브러리를 이용하면 된다. 필요할 때마다 원하는 것을 골라서 사용할 수 있어 자율성이 보장된다.
UI만 해결하는 라이브러리이기 때문에 진입장벽이 낮다.
UI만 해결한다고 단점이라 일컫을 수 있지만 페이스북에서 점진적으로 발전 시키고 커뮤니티에 의해 개발이 되어서 사용할 수 있는 라이브러리가 정말 많다.