Холбоосын параметрүүд

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох цэс бусдаасаа ялгагдахгүй байгаа нь сайнгүй. 
Үнэхээр / чиглүүлэгч нүүр хуудас буюу http://localhost:3000/ хаягаар нүүр хуудасыг үзүүлж байхад

r_07_02_01

кодийн a тегээр тодорхойлогдсон Нүүр холбоост ямар нэгэн атрибут байхгүй байгаа нь харагдана. 

Тэгвэл react-router-dom сангаас NavLink компонентийг импортлоод

          <ul>
            <li>
              <NavLink to="/">Нүүр</NavLink>
            </li>
            <li>
              <NavLink to="/about">About</NavLink>
            </li>
            <li>
              <NavLink to="/cars">Cars</NavLink>
            </li>
          </ul>

цэсний тодорхойлолтын Link -ийг NavLink -ээр соливол

r_07_03_01

NavLink компонент сонгогдсон цэст active классийг динамикаар нэмнэ. Одоо active классаар сонгогдсон цэсийг хэвжүүлэх боломжтой болсон тул Layout компонентийн хэвжүүлэлтийн Layout.scss файлд 

.nav {
  ul {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 20px;

    li {
      margin-right: 15px;

      a.active {
        font-weight: bold;
        color: red;
      }
    }
  }
}

active классийг тодорхойлон өгвөл сонгогдсон цэсний

r_07_03_02

фонт томрон улаан өнгөөр харагдана. NavLink компонент цэст нэмсэн active классаас өөр классийг идэвхитэй цэст нэмэх хэрэгтэй бол яах вэ? Layout.scss файлд тодорхойлсон a.active классийн нэрийг a.active-link болгон өөрчилбөл NavLink компонент цэст active классийг нэмэх ч active-link классийг олж харахгүй. active-link классийг цэсний тодорхойлолтод className атрибутаар

        <nav className="nav">
          <ul>
            <li>
              <NavLink to="/" className={({ isActive }) => (isActive ? "active-link" : "")}>
                Нүүр
              </NavLink>
            </li>
            <li>
              <NavLink to="/about" className={({ isActive }) => (isActive ? "active-link" : "")}>
                About
              </NavLink>
            </li>
            <li>
              <NavLink to="/cars" className={({ isActive }) => (isActive ? "active-link" : "")}>
                Cars
              </NavLink>
            </li>
          </ul>
        </nav>

оруулан ирнэ. className атрибут мөрөөс гадна функцийг авч болох бөгөөд функцэд автоматаар дамжуулдаг обьектоос холбоос идэвхитэй эсэхийг заадаг isActive түлхүүртэй талбар байдагийг бүтцийн задаргаагаар аван параметрээр дамжуулсан. Эргэн дуудалтын функцэд ирэх isActive талбарын утгаас хамааран холбоост active-link классийг нэмсэн. Өөрчлөлтийг хадгалаад хуудасны ажиллагааг шалгавал идэвхитэй цэсийг active-link классаар хэвжүүлнэ. Шалгаад үзээрэй. Кодод давталт гарч байгаа тул эргэн дуудалтын функцийг тусдаа setActive тогтмолд 

  render() {
    const setActive = ({ isActive }) => (isActive ? "active-link" : "");
    return (
      <div>
        <nav className="nav">
          <ul>
            <li>
              <NavLink to="/" className={setActive}>
                Нүүр
              </NavLink>
            </li>
            <li>
              <NavLink to="/about" className={setActive}>
                About
              </NavLink>
            </li>
            <li>
              <NavLink to="/cars" className={setActive}>
                Cars
              </NavLink>
            </li>
          </ul>
        </nav>
    ...

олгоод className атрибутуд setActive -ийг заан өгье. Олон ашиглагдах хэсгийг тусд нь гаргах энэ аргачлалыг тогтмол ашиглахыг зөвлөе. Өөрчлөлтийг хадгалаад хуудасны ажиллагааг шалгавал бүгд хэвийн ажиллана. Холбоост хэвжүүлэлтийн параметрийг style атрибутаар дамжуулан 

  render() {
    ...
    const setStyle = ({ isActive }) => ({color: isActive ? "green" : "black", });
    return (
      <div>
        <nav className="nav">
          <ul>
            <li>
              <NavLink to="/" style={setStyle}>
                Нүүр
              </NavLink>
            </li>
            <li>
              <NavLink to="/about" style={setStyle}>
                About
              </NavLink>
            </li>
            <li>
              <NavLink to="/cars" style={setStyle}>
                Cars
              </NavLink>
            </li>
          </ul>
        </nav>
    ...

хийсэн ч болдог. Өөрчлөлтийн дараа сонгодсон цэс ногоон өнгөтэй болон харагдана. 
Үүний зэрэгцээ NavLink компонентийн to параметрт тохиргоо хийж болно. Жишээ нь машинуудын жагсаалтыг үзүүлэх цэсний тодорхойлолтын 

...
            <li>
              <NavLink
                to={{ pathname: "/cars", search: "?a=1&b=2", hash: "hash" }}
                style={setStyle}
              >
                Cars
              </NavLink>
            </li>
...

to параметрт мөр биш обьектийг дамжуулъя. Обьектийн pathname талбарт чиглүүлэгчийн замыг, search талбарт замын араас get параметрээр нэмэгдэх мөрийг, hash талбарт ямар нэгэн хэш тэгийг өгсөн. Өөрчлөлтийг хадгалаад хуудсаа нээгээд cars цэсээр орвол

r_07_03_03

хаягийн мөр to параметрт дамжуулсан обьектын талбаруудыг агуулна.

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

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

Vue фреймворкийн ээлжит хичээлээр форм дээрх тоон утгын талбаруудад v-model директивийг яаж ашиглахыг үзье. Жишээ нь форм дээрээс хэрэглэгчийн насыг авах хэрэгтэй болсон гэе. Үүний тулд

<template>
  <div>
    <h2>Form inputs</h2>
    <input type="text" v-model="age">
    <hr>
    <p>{{ age }}</p>
  </div>
</template>

<script>
export default {
  data () {
    return {
      age: 20
    }
  }
}
</script>

код байхад болох мэт.

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

Чиглүүлэгч буюу url хаягт ямар параметрүүдийг дамжуулж болохыг үзье. Давхар чиглүүлэгчид хичээлд машины тухай дэлгэрэнгүй мэдээллийг

гэж харуулсан. Өөрөөр хэлбэл ямарч машиныг мэдээллийг CarFull компонентод шууд заасан байгаа.

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

ECMA6 гийн тэмдэгтүүд гэж юу болох тэдгээртэй хэрхэн ажиллахыг харцгаая. Тэмдэгт гэдэг нь javascript -ийн өгөгдлийн шинэ төрөл ба түүнийг Symbol классаар үүсгэдэг. Жишээ нь

let s = Symbol('e-surgalt.com');
console.log(typeof s);

symbol төрлийн обьектыг үүсгэхдээ Symbol классын байгуулагчид утга дамжуулах эсхүл дамжуулахгүй байсан ч болно.

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

Навигацийг /чиглүүлэгч/ үүсгэх хичээлээр үүсгэсэн цэснүүдээс шилжилт хийхэд сүүлд сонгогдсон цэс аль нь болохыг мэдэхэд хүндрэлтэй байгаа. Иймээс хуудасны идэвхитэй холбоосыг тэмдэглэх классыг хэрхэн оруулан ирэхийг авч үзье. Bootstrap -д сонгогодсон цэсийг тэмдэглэх active гэсэн класс байдгийг цэснүүдийн аль нэгэнд

        <ul class="navbar-nav">
          <li class="nav-item">
            <router-link class="nav-link" to="/">Home</router-link>
          </li>
          <li class="nav-item active">
            <router-link class="nav-link" :to="'/cars'">Cars</router-link>
          </li>
        </ul>

тавин өгөөд хуудсаа хөтөч дээр нээвэл

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

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

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

илэрхийллийг хялбарчил.

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

 

Паралелграмын AB, CD диагналуудын огтлолцлын цэг O бол векторуудын нийлбэрийг ол.

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

 

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

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