Програмын эхлэлийн цэг

Vue CLI хэрэгслэээр үүсгэсэн төслийн эхлэлийн цэг бол

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

кодийг агуулсан main.js файл юм. npm run serve командаар ачааллагдах боловсруулалтын сервер хандан ажиллах public хавтас доторх index.html файлд

  <body>
    <noscript>
      <strong>We're sorry but vue-lesson doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>

<noscript> тегд JavaScript -ийг нээхгүй бол програм ажиллахгүй гэсэн анхааруулга гаргах хэсэг дараа нь app айдитай div элемент л байгаа. div -ийн араас багцлагдсан файлуудыг автоматаар оруулна гэсэн тайлбар бий. Хэрвээ та хөтөчийн тохиргоонд JavaScript код ажлуулахыг хаавал програм ажиллахгүй.
Vue CLI хэрэгслээр үүсгэсэн төслийн эхлэлийн цэг main.js файлд Vue -гийн шинэ хувийг өмнөх хичээлүүдэд сурсан аргаас арай өөрөөр үүсгэж байгаа. Өмнө нь бид Vue -гийн хувийн тохиргооны обьектод el: '#app' гэж хувийг холбох тегийн Id -г заадаг байсан. Vue 3.0 -аас дээшхи хувилбарт main.js файлд Vue -гийн шинэ хувийг үүсгэхдээ тохиргооны обьектын render талбарт App компонентыг виртуал DOMhtml код болгон хувиргах функцийг тодорхойлоод дараа нь mount аргад app айдитай div элементэд холбон өгнө гэдгийг параметрээр өгдөг болсон. Төслийн эхлэлийн цэг main.js файлыг өмнөх хичээлүүдэд сурсантай төстэй байдлаар

import Vue from 'vue'
import App from './App.vue'

Vue.use(VueResource)

new Vue({
  el: '#app',
  render: h => h(App),
})

гэж өөрчилье. Төслийг ажлуулбал бүгд хэвийн ажиллана. el: '#app' мөрийг өмнөх хичээлүүдээс мэднэ. Түүний дараагийн render талбарын тодорхойлолт бол шинэ зүйл. Хэрвээ та EMCA6 -гийн сумаар тодорхойлогдох функцийн бичлэгийг мэддэг бол render талбарыг параметрээр функц авдаг функцээр тодорхойлсон гэдгийг төвөггүй ойлгоно. Үүнийг арай ойлгомжтой болгох үүднээс EMCA5 -ын дүрмээр

import Vue from 'vue'
import App from './App.vue'

Vue.use(VueResource)

new Vue({
  el: '#app',
  render: function(h) {
    return h(App)
  },
})

гэж бичээд төслийг ажлуулбал бүгд хэвийн ажиллана. render талбарыг параметрээр h функцийг аваад түүнийг ажиллуулахдаа main.js файлд импортолсон App компонентийг дамжуулсан функц байдлаар тодорхойлсон. Ингэснээр webpack сан App компонентийн script тегд тодорхойлогдсон обьект болон template тегд тодорхойлогдсон хэвүүдээр html кодыг үүсгэнэ. Үүний дараа index.html файлын app айдитай div -ийн оронд функцээс буцаасан html -ийг оруулан өгөөд төслийг эхлүүлнэ. Үүнийг EMCA6 -д илүү хураангуйлан render: h => h(App) гэж бичдэг.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

JSX

  Нээгдсэн тоо: 629 Төлбөртэй

Энэ хичээлээс эхлэн react ашигладаг jsx бичлэгийн дүрмийн талаар дэлгэрүүлэн авч үзнэ. Өмнөх хичээлүүдэд хуудасны хэвийн тэмдэглэгээний jsx бичлэгийн дүрмийн үндсэн ойлголтуудыг үзсэн. Энэ удаад jsx гэж юу болох, хэрхэн ажилладагийг react програм үүсгэх хичээлд үүсгэсэн төслийн кодоор авч үзье. Бидний үүсгэсэн төслийн оролтын index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

файлд ReactDOM обьектын render аргад App нэрээр импортлон авсан App компонентийг эхний параметрээр дамжуулж байгаа.

  Нээгдсэн тоо: 294 Төлбөртэй

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан. Түүнээс гадна програмийн бүх хуудаст давтагдах хэсэгт зориулан Layout /макет/ компонентийг боловсруулсан. Layout /макет/ компонент бусад хуудаснуудад давтагдах хэсгийг агуулах учраас кодийг

import React from "react";
import { Link } from "react-router-dom";
import "./Layout.scss";

const Layout = () => {
  return (
    <>
      <header>
        <nav className="nav">
          <ul>
            <li>
              <Link to="/">Нүүр</Link>
            </li>
            <li>
              <Link to="/about">About</Link>
            </li>
            <li>
              <Link to="/cars">Cars</Link>
            </li>
          </ul>
        </nav>
      </header>
      <main>
        <h2>Агуулга</h2>
      </main>
      <footer>2023 Он</footer>
    </>
  );
};

export default Layout;

блокуудад салгаад хуудасны ажиллагааг шалгавал

  Нээгдсэн тоо: 847 Төлбөртэй

Vue -ийн хувийн амьдралын мөчлөгийн талаар авч үзье. Vue -гийн хувь бүрд өөрийн гэсэн амьдралын мөчлөг байдаг бөгөөд тодорхой  үе шатуудыг ажиглах боломжтой. Програмын амьдрах мөчлөгийн үе шатуудыг

    <body>
        <div id="app">
            <h2>{{ title }}</h2>
            <button @click="title = 'Гарчигийг өөрчлөв'">Гарчигийг өөрчлөх</button>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            new Vue({
                el: '#app',
                data: {
                    title: 'Vue програм'
                }
            })
        </script>        
    </body>

кодоор авч үзье. Код хуудаст title талбарыг үзүүлээд Гарчигийг өөрчлөх товчийг дарахад title талбарын утгыг өөрчлөнө. Бид ажиглалт хийж болох эхний үе шат бол Vue програмын инициализац юм. new Vue({ ... }) командаар Vue програмын инициализац хийгдэх боловч хэрэглэгч хуудсыг харах хүртэл хэдэн шатыг дамждаг.

  Нээгдсэн тоо: 590 Бүртгүүлэх

React компонентоос хэд хэдэн элементүүдийг буцаах нь ердийн үзэгдэл ч тэдгээрийг заавал нэг суурь элементэд багцалсан байх дүрэмтэй. Энэ дүрэм нь зарим тохиолдолд DOM -д илүү зангилаа /элемент/ үүсгэдэг асуудлыг React 16 хувилбараас фрагментээр солин шийдвэрлэсэн. Фрагмент гэдгийг ойлгохын тулд төслийн кодод багахан өөрчлөлтийг хийе. ErrorBoundary классийн ажиллагааг шалгах зорилгоор Car компонентод нэмэн өгсөн

     if (this.props.name === 'Toyata Prius') {
       throw new Error('Алдаа гарлаа !!!')
     }

кодийг хасвал програм TOGGLE CAR товч дээр дарахад алдаа хаялгүй хэвийн ажиллана.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 109

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 171

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 141

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 261

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 294

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 305

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 361

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 352

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 433

 
Энэ долоо хоногт

тэгшитгэлийг бод.

Нээгдсэн тоо : 1390

 

илэрхийллийн утгыг ол.

Нээгдсэн тоо : 778

 

Хажуу тал нь 17 см адил хажуут трапец 15 см диаметртэй тойргийг багтаасан бол трапецийн сууриудын үржвэр хэд вэ?

Нээгдсэн тоо : 241