# បង្កើតកម្មវិធីធនាគារផ្នែក 1៖ គំរូ HTML និងផ្លូវចូលក្នុងកម្មវិធីវែប ```mermaid journey title ជីវនិទ្យាការអភិវឌ្ឍកម្មវិធីធនាគាររបស់អ្នក section មូលដ្ឋាន SPA យល់ដឹងអំពីកម្មវិធីទំព័រតែមួយ: 3: Student រៀនគំនិតសាច់រឿង: 4: Student ជំនាញគ្រប់គ្រង DOM: 4: Student section ប្រព័ន្ធផ្លូវ អនុវត្តផ្លូវភាគីអតិថិជន: 4: Student គ្រប់គ្រងប្រវត្តិកម្មវិធី​រុករក: 5: Student បង្កើតប្រព័ន្ធនាវាដឹកជញ្ជូន: 5: Student section លំនាំវិជ្ជាជីវៈ សាងសង់រចនាសម្ព័ន្ធម៉ូឌុល: 5: Student ប្រើប្រាស់លំនាំល្អបំផុត: 5: Student បង្កើតបទពិសោធន៍អ្នកប្រើ: 5: Student ``` នៅពេលកុំព្យូទ័រណែនាំ Apollo 11 មួយដល់ខែពីរឆ្នាំ 1969 វាត្រូវតែប្ដូរវ៉ិចនិយោបាយរវាងកម្មវិធីនានា ដោយគ្មានការចាប់ផ្ដើមចុះវិញពេញលេញទាំងអស់។ កម្មវិធីវែបទំនើបធ្វើដូច្នោះដែរ – ពួកវាប្ដូរអ្វីដែលអ្នកត្រូវឃើញ ដោយគ្មានការប្រលោមទាំងអស់ពីដើមឡើងវិញ។ នេះបង្កើតបទពិសោធន៍រលូន និងឆាប់រហ័សដែលអ្នកប្រើបានរំពឹងទុកថ្ងៃនេះ។ ខុសពីគេហទំព័របែបបែបផែនត្រៀមដែលបញ្ចូលទំព័រទាំងមូលឡើងវិញសម្រាប់ការប្រឹងប្រែងណាមួយ កម្មវិធីវែបទំនើបធ្វើបច្ចុប្បន្នភាពតែនៅផ្នែកដែលត្រូវបានប្ដូរតែប៉ុណ្ណោះ។ វិធីសាស្ត្រនេះ ដូចជា ការត្រួតត្រាចល័តផ្សេងៗដែលត្រូវធ្វើតាមគ្នា ខណៈ​រក្សាការទំនាក់ទំនងជាបន្តបន្ទាប់បង្កើតបទពិសោធន៍រលូនដែលយើងបានរំពឹងទុក។ នេះគឺជាអ្វីដែលធ្វើឲ្យមានភាពខុសគ្នាដ៏តានតឹង៖ | កម្មវិធីមួយរូបភាពច្រើនផ្នែកបែបប្រពៃណី | កម្មវិធីមួយរូបភាពផ្នែកតែមួយទំនើប | |----------------------------|-------------------------| | **ការរុករក** | រុករកទំព័រពេញលេញសម្រាប់មួយអេក្រង់ | ប្ដូរប្លុកមាតិកាឲ្យរហ័ស | | **កម្រិតកំណត់ប្រតិបត្តិការ** | យឺតព្រោះទាញយក HTML ពេញលេញ | លឿនជាមួយកំណត់ការបច្ចុប្បន្នភាពខ្នាតតូច | | **បទពិសោធន៍អ្នកប្រើ** | ភ្លេចភ្លាមពេញទំព័រ | លឿន ដូចកម្មវិធីបែបអេប | | **ការចែករំលែកទិន្នន័យ** | ពិបាករវាងទំព័រ | ចឹងយ៉ាងងាយស្រួលក្នុងការគ្រប់គ្រងស្ថានភាព | | **ការអភិវឌ្ឍន៍** | មានឯកសារ HTML ច្រើនត្រូវថែទាំ | HTML តែមួយជាមួយគំរូដូរប្រែ δυναμικά | **ការយល់ដឹងអំពីការវិវត្ត:** - **កម្មវិធីប្រពៃណី** ត្រូវការសំណើរសមាដេចរៀងរាល់ការរុករក - **កម្មវិធី SPA ទំនើប** ត្រូវបានផ្ទុកមួយដងហើយធ្វើបច្ចុប្បន្នភាពច្រើនៗដោយប្រើ JavaScript - **ការរំពឹងទុកអ្នកប្រើ** ពេញចិត្តនឹងការប្រែប្រួលរហ័ស និងរលូន - **អត្ថប្រយោជន៍ប្រតិបត្តិការ** រួមមានការកាត់បន្ថយចម្លងទិន្នន័យ និងការឆ្លើយតបលឿនជាងមុន នៅក្នុងមេរៀននេះ យើងនឹងបង្កើតកម្មវិធីធនាគារដែលមានអេក្រង់ច្រើនដែលរលូននៅក្នុងភាពបន្តបន្ទាប់។ ដូចជាវិទ្យាសាស្ត្រករនៃបច្ចេកវិទ្យាអាចប្រើឧបករណ៍មួយដែលអាចប្ដូររចនាឡើងវិញសម្រាប់ការប្រលងផ្សេងៗ យើងនឹងបញ្ចូលគំរូ HTML ដែលអាចប្រើឡើងវិញបាន ដើម្បីបង្ហាញនៅពេលចាំបាច់។ អ្នកនឹងធ្វើការជាមួយគំរូ HTML (គំរូដែលអាចប្រើឡើងវិញសម្រាប់អេក្រង់ផ្សេងៗ), របៀបនៃការប្រែផ្លូវបញ្ជា JavaScript (ប្រព័ន្ធដែលប្ដូរវ៉ិចនិយោបាយរវាងអេក្រង់), និងប្រវត្តិ API របស់កម្មវិធីរុករក (ដែលរក្សាប៊ូតុងត្រឡប់ត្រលប់ដូចដែលបានរំពឹងទុក)។ វាជាបច្ចេកទេសមូលដ្ឋានដដែលដែលគេប្រើនៅក្នុងស៊ុម React, Vue និង Angular។ នៅចុងក្រោយ អ្នកនឹងមានកម្មវិធីធនាគារដំណើរការដែលបង្ហាញគ្រឹះតំណាងនៃកម្មវិធីមួយរូបភាពបែបផ្នែកតែមួយមានវិជ្ជាជីវៈ។ ```mermaid mindmap root((កម្មវិធីទំព័រតែមួយ)) Architecture ប្រព័ន្ធគំរូ ការផ្លូវចរាចរមុខអតិថិជន ការគ្រប់គ្រងស្ថានភាព ការដោះស្រាយព្រឹត្តិការណ៍ Templates សមាសភាពដែលអាចប្រើប្រាស់ឡើងវិញ មាតិកាបំលែង ការគ្រប់គ្រង DOM ការប្តូរមាតិកា Routing ការគ្រប់គ្រង URL ប្រវត្តិ API ចលនាផ្លូវចរាចរ ការរួមបញ្ចូលកម្មវិធីរុករក User Experience ការផ្លូវចរាចរលឿន ការផ្ទេរយ៉ាងរលូន ស្ថានភាពឋិតថេរ ការបញ្ចូលទំនាក់ទំនងទំនើប Performance ការស្នើសុំម៉ាស៊ីនបម្រើកាត់បន្ថយ ការផ្ទេរទំព័រយ៉ាងរហ័ស ការប្រើប្រាស់ធនធានមានប្រសិទ្ធិភាព ការឆ្លើយតបល្អប្រសើរ ``` ## សំណួរប្រលងមុនមេរៀន [សំណួរប្រលងមុនមេរៀន](https://ff-quizzes.netlify.app/web/quiz/41) ### អ្វីដែលអ្នកត្រូវការជាមុន យើងត្រូវការសេវាកម្មវែបមួយក្នុងតំបន់បណ្តាញដើម្បីពិនិត្យកម្មវិធីធនាគារយើង – កុំបារម្ភ វាងាយជាងចិត្ត! ប្រសិនបើអ្នកមិនមានសេវាកម្មមួយនៅលើឧបករណ៍របស់អ្នកទេ ចូរតម្លើង [Node.js](https://nodejs.org) ហើយបញ្ជូល `npx lite-server` ពីថតគម្រោងរបស់អ្នក។ ពាក្យបញ្ជានេះនឹងបើកសេវាកម្មវែបមួយនៅក្នុងតំបន់បណ្តាញភ្លាម និងបើកកម្មវិធីរបស់អ្នកនៅក្នុងកម្មវិធីរុករកដោយស្វ័យប្រវត្តិ។ ### ការរៀបចំ លើកុំព្យូទ័ររបស់អ្នក បង្កើតថតឈ្មោះ `bank` ដែលមានឯកសារមួយឈ្មោះ `index.html` នៅខាងក្នុង។ យើងនឹងចាប់ផ្តើមពី [HTML boilerplate](https://en.wikipedia.org/wiki/Boilerplate_code) នេះ៖ ```html Bank App ``` **នេះជាអ្វីដែល boilerplate នេះផ្តល់:** - **បង្កើត** រចនាសម្ព័ន្ធឯកសារ HTML5 ជាមួយការប្រកាស DOCTYPE ត្រឹមត្រូវ - **កំណត់** ការបញ្ចូលតួអក្សរជា UTF-8 ដើម្បីគាំទ្រអត្ថបទអន្តរជាតិ - **អនុញ្ញាត** ការរចនារហ័ស តាមម៉ែតាប៉ារាមែត្រ viewport សម្រាប់ដំណើរការលើទូរស័ព្ទចល័ត - **កំណត់** ចំណងជើងដ៏អស្ចារ្យាចេញនៅលើប៊ុតបរកម្មវិធីរុករក - **បង្កើត** ភាគរយសុទ្ធស្អាតដែលយើងនឹងបង្កើតកម្មវិធី > 📁 **មើលរចនាសម្ព័ន្ធគម្រោងជាមុន** > > **នៅចុងមេរៀននេះ គម្រោងរបស់អ្នកនឹងមាន៖** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **ពីការទទួលខុសត្រូវឯកសារ៖** > - **index.html**: មានគំរូទាំងអស់ និងផ្តល់រចនាសម្ព័ន្ធកម្មវិធី > - **app.js**: គ្រប់គ្រងផ្លូវចូល, រុករក និងការគ្រប់គ្រងគំរូ > - **Templates**: កំណត់ UI សម្រាប់ការចូល, ការគ្រប់គ្រងផ្ទាំង និងអេក្រង់ផ្សេងៗ --- ## គំរូ HTML គំរូជួយដោះស្រាយបញ្ហាមូលដ្ឋានមួយក្នុងការអភិវឌ្ឍកម្មវិធីវែប។ ពេលដែល Gutenberg បង្កើតម៉ាស៊ីនបោះពុម្ពអក្សរដាច់ខ្សែរប្រមាណឆ្នាំ 1440 គាត់បានដឹងថា ជំនួសការគូរទំព័រទាំងមូល អាចបង្កើតអក្សរដែលអាចប្រើឡើងវិញ ហើយចំលងវាបានតាមតម្រូវការ។ គំរូ HTML ក៏ដូចគ្នា បែបផែនថា ជំនួសការបង្កើតឯកសារ HTML ផ្សេងៗសម្រាប់អេក្រង់នីមួយៗ អ្នកកំណត់រចនាសម្ព័ន្ធដែលអាចប្រើឡើងវិញ ដើម្បីបង្ហាញនៅពេលចាំបាច់។ ```mermaid flowchart TD A["📋 ការកំណត់គំរូ"] --> B["💬 លាក់នៅក្នុង DOM"] B --> C["🔍 JavaScript ស្វែងរកគំរូ"] C --> D["📋 លៃតម្រូវមាតិកាគំរូ"] D --> E["🔗 ចងជាមួយ DOM មើលឃើញ"] E --> F["👁️ អ្នកប្រើឃើញមាតិកា"] G["គំរូចូល" ] --> A H["គំរូផ្ទាំងគ្រប់គ្រង"] --> A I["គំរូអនាគត"] --> A style A fill:#e3f2fd style D fill:#e8f5e8 style F fill:#fff3e0 style B fill:#f3e5f5 ``` គិតគំរូជា គំនូសផែនសម្រាប់ផ្នែកផ្សេងៗនៃកម្មវិធីរបស់អ្នក។ ដូចជា សំណង់ស្ថាបត្យករបង្កើតគំនូសមួយ ហើយប្រើវាច្រើនលើជាន់ជាន់ជាងគូរថ្មីវិញបន្ទប់ដូចគ្នា យើងបង្កើតគំរូមួយផ្តើមហើយធ្វើចម្លងរបស់វាចំឡើងពេលត្រូវការ។ កម្មវិធីរុករករក្សាគំរូទាំងនេះលាក់តuntil JavaScript បើកវា។ ប្រសិនបើអ្នកចង់បង្កើតអេក្រង់ច្រើនសម្រាប់គេហទំព័រ មួយវិធីដោះស្រាយគឺបង្កើតឯកសារ HTML ផ្សេងៗមួយសម្រាប់អេក្រង់នីមួយៗដែលអ្នកចង់បង្ហាញ។ ទៅតាមវិធីនេះអាចមានរាំងស្ទះមួយចំនួន៖ - អ្នកត្រូវធ្វើការផ្ទុក HTML ពេញលេញឡើងវិញពេលប្ដូរអេក្រង់ ដែលអាចយឺតបាន។ - ពិបាកក្នុងការចែករំលែកទិន្នន័យរវាងអេក្រង់ផ្សេងៗ។ វិធីផ្សេងទៀតគឺ មានតែឯកសារ HTML មួយប៉ុណ្ណោះ ហើយកំណត់គំរូ HTML ច្រើន [HTML templates](https://developer.mozilla.org/docs/Web/HTML/Element/template) ដោយប្រើធាតុ `