Формийг илгээх

Өмнөх хичээлүүдэд хэрэглэгчийн оруулсан эмайл, нууц үгэнд шалгалт хийх формыг зохиогоод байгаа. Өөрөөр хэлбэл бид бүртгэлийн формийг үүсгэсэн. Одоо формдоо түүнийг илгээх товчийг нэмвэл бүрэн хэмжээний ажиллагаатай болохоор байгаа. Иймээс формийн хэвд хамгийн сүүлийн form-group класстай div -ийн ард

<template>
  <div class="container">
    <form action="" class="pt-4">
      ...    
      <button class="btn btn-success">Submit</button>            
    </form>
  </div>
</template>

bootstrap -ээр хэвжүүлсэн Submit товчийг нэмэн оруулаад хуудсаа шинэчилбэл

гэж харагдана. Одоо Submit товчийг дарвал шалгалт хийгдээгүй хоосон талбаруудыг илгээнэ. Иймээс эхний ээлжинд форм шалгалтыг даваагүй байхад Submit товчийг дарах боломжгүй байлгаад форм шалгалтыг даван өөрөө хэлбэл талбарууд зөв мэдээллүүдтэй болсон тохиолдолд түүнийг идэвхитэй болгох шаардлагатай. Үүний тулд хуудасны шаблон дахь Submit товчны кодыг

<template>
  <div class="container">
    <form action="" class="pt-4">
      ...
      <button
        class="btn btn-success"
        type="submit"
        :disabled="$v.$invalid"
      >Submit</button>            
    </form>
  </div>
</template>

болгон өөрчилье. Кодод товчны төрлийг submit болгоод түүний disabled атрибутыг $v.$invalid төлөвтэй холбон өгсөн. Валидаторийг тохируулах хичээлд Vuelidate пакетийн төлвүүдийг $v обьект агуулж байдгийг мэдсэн. Обьектод талбаруудаас гадна формийн төлвийг хариуцаж байдаг талбарууд байдаг ба $invalid талбар нь форм бүхэлдээ шалгагдан зөв болсон тохиололд true утгыг авдаг. Иймээс disabled атрибутыг $v.$invalid төлөвтэй холбон өгч байгаа юм. Өөрчлөлтийг хадгалаад хуудсаа шинэчилбэл

Submit товч идэвхигүй буюу түүн дээр дарах боломжгүй болсон байгаа. Хэрэглэгч формийн бүх талбарт зөв мэдээллийг оруулсны дараа л Submit товч идэвхитэй болно. Үүнийг өөрсдөө шалгаарай. Формийн бүх талбарт зөв мэдээллийг оруулаад Submit товчийг дарахад формийн өгөгдлүүд цэвэрлэгдэнэ. Формын талбаруудыг шууд цэвэрлэх нь сайнгүй. Иймээс формыг Vuejs -ээр илгээхээр болгон өөрчилье. Үүний тулд компонентийн хэвийн формийн кодыг  

<template>
  <div class="container">
    <form action="" class="pt-4" @submit.prevent="onSubmit">
      ...
      <button
        class="btn btn-success"
        type="submit"
        :disabled="$v.$invalid"
      >Submit</button>            
    </form>
  </div>
</template>

дээрх байдлаар өөрчилье. Шаблоны form тегд javascript -ийн өөрийнх нь submit үйл явцад onSubmit сонсогчийг тавин өгсөн. Үйл явцын prevent модификатор хуудасны дахин ачаалалтыг болиулдаг гэдгийг бид үзсэн. onSubmit сонсогчийг компонентийн кодын хэсэгт

<script>
import { required, email, minLength, sameAs } from 'vuelidate/lib/validators'
export default {
  data () {
    return {
      email: '',
      password: '',
      confirmPassword: ''
    }
  },
  methods: {
    onSubmit() {
      console.log('Email', this.email)
      console.log('Password', this.password)
    }
  },
  ...
}
</script>

methods талбарт тодорхойлон өгөх ёстой. onSubmit арга форм бүх шалгагчийн давсны дараа л дуудагдана. Арга хэрэглэгчээс оруулсан формийн мэдээллийг backend серверт дамжуулна. Хичээлд энэ талаар үзэхгүй тул хэрэлэгчээс оруулсан мэдээллийг консолд үзүүлье. Өөрчлөлтүүдийг хадгалаад хуудсаа шинэчлээд

формийг зөв мэдээллүүдээр бөглөөд Submit товчийг дарвал хуудсыг дахин ачааллан формийг цэвэрлэхгүйгээс гадна консолд хэрэглэгчээс оруулсан майл хаяг, нууц үгийг үзүүлнэ. Одоо хэрэглэгчийн мэдээллийг ашиглаж болохын дээр түүнийг серверт илгээн серверээс хариу авсны дараагаар түүнийг цэвэрлэх эсэхээ шийдэх юм.

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

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

Динамик жагсаалттай ажиллах боломжуудын тухай авч үзье. Манай хичээлийн програм App, Car компонентуудтай болоод байгаа.

App компонентийн Toogle car товч машиний мэдээллийн жагсаалтыг нээх, хаах ажиллагааг хийх бол Car компонентийн Дарах товчоор App компонентод h1 гарчигаар үзүүлж буй текстийг машиний нэрээр сольдог. Динамик жагсаалттай ажиллах практик болгон програмд Car компонентийн Дарах товчийг input -ээр солиод input -д оруулсан мэдээллээр Car компонентоос машиний нэрийг өөрчлөх машиний мэдээллийг жагсаалтаас хасах ажиллагаануудыг хэрэгжүүлье.

  Нээгдсэн тоо: 501 Нийтийн

Компонентийн төлвийн өөрчлөлтийг хийх setState арга ансинхрон ажиллагаатай тул төлвийн өөрчлөлтийг зөв хийж сурах хэрэгтэй. Үүнийг Фрагмент хичээлд үүсгэсэн

import React, { Component } from 'react'

export default class Counter extends Component {
  state = {
    counter: 0
  }
  addCounter = () => {
    this.setState({
      counter: this.state.counter + 1
    })
  }
  render() {
    return (
      <div>
        <h2>Тоолуур {this.state.counter}</h2>
        <button onClick={this.addCounter}>+</button>
        <button onClick={() => this.setState({ counter: this.state.counter - 1 })}>-</button>
      </div>
    )
  }
}

Counter компонентийн жишээн дээр авч үзье.

  Нээгдсэн тоо: 2110 Нийтийн

Хичээлээр ES6 -гийн кодыг ES5 кодоор компиляц хийх талаар авч үзье. Юуны түрүүнд үүнийг ямар учраас хийх хэрэгтэй вэ? гэдгийг тайлбарлая. ES бол EcmaScript -ийн хураангуйлсан бичлэг бөгөөд 6 нь Javascript -ийн хувилбарын дугаар. ES6 гараад удаагүй байгаа ч түүнийг олон хөтөчүүд дэмжин ажилладаг болоод байгаа. Жишээ нь Chrome хөтөч ES6 дээр бичигдсэн кодыг шууд ажиллуулна. Гэвч олон хэрэглэгчид ES6 -г шууд дэмждэггүй хуучин хөтөчүүдийг жишээ нь Internet Explorer, Firefox -ийн хуучин хувилбарыг хэрэглэсээр байгаа. Харин эдгээр хуучин хөтөчүүд ES5 -ийг бүрэн дэмжин ажилладаг тул програмыг бүх хэрэглэгчид ямар нэгэн асуудалгүйгээр ашиглах боломжийг бүрдүүлэх зорилгоор ES6 -гийн кодыг ES5 кодоор компиляц хийх хэрэгцээ бий.

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

Програмын бүтээгдхүүнүүд интернетэд суурилсан буюу хөтөч дээр ажиллах хандлага улам дэлгэрсээр байгаа нь  javascript хэлийг судлан эзэмших шаардлагыг улам нэмэгдүүлсээр байгаа. Хэлний боловсруулагчид javascript хэлний бичлэгийн дүрмийг өргөн тархсан програмчлалын хэлүүдтэй улам төстэй болгож байгааг ES6 -д классууд хэрхэн өөрчлөгдсөн дээр авч үзье. ES5 -д классыг хэрхэн үүсгэж байсанг

function Car(name) {
    this.name = name;
}

Car.prototype.logName = function () {
    console.log(this.name);
};

let car = new Car('Toyota');
car.logName();

жишээнээс харцгаая.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

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

 

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

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

 

Зурагт өгөгдсөн дотоод байдлаараа шүргэлцсэн хоёр тойргийн TA нь ерөнхий шүргэгч, TC нь том тойргийн огтлогч, жижиг тойргийн шүргэгч болно. DC=3, CB=2 бол TA -г ол.

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