فریم ورک در مقابل کتابخونه

یک کتابخونه مجموعه ای از فانکشن ها رو در خودش داره که هر کدوم یک کاری رو انجام میدن. این فانکشن ها از طریق API ها در دسترس ما به عنوان کاربرای اون کتابخونه قرار میگیرن. یکی از کتابخونه های به درد بخور lodash هست، که یکی از قابلیت هاش حذف تمام مقدار های تکراری از یک array هست:

const duplicatedArray = [1,2,1,2,3];
const uniqueArray = lodash.uniq(duplicatedArray)
// => [1,2,3]

از اون طرف فریم ورک ها شکل خاصی از کتابخونه هستن. اونها کد های قابل استفاده مجددی هستن که پایه و اساس یک اپلیکیشن جاوا اسکریپت رو میسازن. در مقابل کتابخونه ها، که یک سری قابلیت به کد شما اضافه میکنن، یک فریم ورک میتونه به تنهایی یک سری کار رو هندل کنه و با کد شما استفاده میشه تا اون برنامه ای که میخواید رو ایجاد کنید.

یکی از فریم ورک های معروف Vue.js هست، که به شکل زیر میتونه استفاده بشه:

(فایل library-vue.js)


// html
<div id="example">
 <input :value="text" @input="update"/>
 <div v-html="myOwnText"></div>
</div>
// javascript
new Vue({
 el: '#example',
 data: {
  text: 'My first framework'
 },
 computed: {
  myOwnText: function () {
   return this.text
 }
 },
 methods: {
  update: function (e) {
   this.text = e.target.value
 }
 }
})
// => renders a page with an input field
// => and a div that displays the inputs value


همینطور که میبینید، به طول کلی استفاده از فریم ورک ها پیچیدگی بیشتری نسبت به استفاده از کتابخونه ها داره. با این حال، هر دوشون توی توسعه نرم افزار نقش مهمی دارن.

جدا از تفاوت هایی که این دو با هم دارن، قراره از این اصطلاحات به جای همدیگه استفاده کنیم. یه اصطلاح مرتبط دیگه که توی جاوا اسکریپت موقع مواجه شدن با یک کد خارجی و از قبل آماده شده ممکنه بشنوید، package هست. یکی از اون پکیج هایی که توی کار با جاوا اسکریپت باهاش مواجه میشید Vanilla.js هست. توی قسمت بعدی بیشتر بررسیش میکنیم.