Rozdiel medzi rámcom a knižnicou

Vývojári často používajú výrazy „knižnica“ a „rámec“ zameniteľne. Rozdiel však existuje.

Rámec aj knižnice sú kódom napísaným niekým iným, ktorý sa používa na pomoc pri riešení bežných problémov.

Povedzme napríklad, že máte program, v ktorom plánujete prácu s reťazcami. Rozhodli ste sa ponechať svoj kód SUCHÝ (neopakujte sa) a napíšete niektoré opakovane použiteľné funkcie, ako sú tieto:

function getWords(str) { const words = str.split(' '); return words; } function createSentence(words) { const sentence = words.join(' '); return sentence; }

Gratulujem. Vytvorili ste knižnicu.

Na rámcoch alebo knižnici nie je nič kúzelné. Knižnice aj rámce sú opakovane použiteľným kódom napísaným niekým iným. Ich účelom je pomôcť vám ľahšie vyriešiť bežné problémy.

Dom často používam ako metaforu pre koncepty webového vývoja.

Knižnica je ako ísť do Ikea. Už máte domov, ale potrebujete trochu pomôcť s nábytkom. Nemáte chuť vyrábať svoj vlastný stôl od nuly. Ikea vám umožňuje vyberať a vyberať si z rôznych vecí vo vašej domácnosti. Máte všetko pod kontrolou.

Rámec je na druhej strane ako stavanie vzorového domu. K dispozícii máte súbor plánov a niekoľko obmedzených možností, pokiaľ ide o architektúru a dizajn. V konečnom dôsledku má nad tým kontrolu dodávateľ a plán. Dajú vám vedieť, kedy a kde môžete poskytnúť svoje informácie.

Technický rozdiel

Technický rozdiel medzi rámcom a knižnicou spočíva v pojme zvanom inverzia riadenia.

When you use a library, you are in charge of the flow of the application. You are choosing when and where to call the library. When you use a framework, the framework is in charge of the flow. It provides some places for you to plug in your code, but it calls the code you plugged in as needed.

Let’s look at an example using jQuery (a library) and Vue.js (a framework).

Imagine we want to display an error message when an error is present. In our example, we will click a button, and pretend an error occurs.

With jQuery:

// index.html