يتم إضافة كائن Object جديد إلى المصفوفة tasks من خلال استخدام معامل النشر أو (Spread Operator) وهو مفهوم بالجافاسكريبت يعمل على نشر عناصر مصفوفة ما، أي بمعنى آخر يتم إعادة وضع جميع عناصر المصفوفة tasks كما هي وباستخدام الفاصلة والقيمة الجديدة يتم إضافة هذه القيمة إلى القيم السابقة. مثال:
let numbers = [1,2,3];
let newNumbers = [...numbers,4];
newNumbers = [1,2,3,4] ستكون قيمة المصفوفة الجديدة تساوي قيمة المصفوفة السابقة ويضاف لها الرقم الجديد
وبنفس الطريقة يتم دمج عناصر من عدّة مصفوفات بمفصفوفة واحدة، مثال:
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
الناتج: [0,1,2,3,4,5]
يمكنك إيجاد بعض الأمثلة المفيدة ضمن موسوعة حسوب (من هنا)
أما بالنسبة لآلية عمل useState فهو يعرف بالخطّاف وهو من أساسيات مكتبة React وآلية عمله بشكل مختصر هو تحديث بعض القيم تبعاً لمتغيرات، بحيث يتم إضافة قيمة مبدئية للمتغيّر الذي نرغب بتحديثه (وهنا في مثالنا وضعنا مصفوفة فارغة) ثم يتم تحديثها باستخدام setTasks.
ويمكنك قراءة المزيد عنها من خلال التوثيق الرسمي والبحث على الانترنت ستجد العديد من الأمثلة الشاملة.