Hybind for composing User Interfaces - TheOpenCloudEngine/uEngine-cloud GitHub Wiki

μ΄λ²ˆμ‹œκ°„μ—λŠ” Hybind λ₯Ό ν†΅ν•˜μ—¬ 마이크둜 μ„œλΉ„μŠ€μ™€ UIλ₯Ό μ—°κ²°ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³Έλ‹€.

그전에 Course.vue 와 CourseManagement.vue 의 섀계 방법을 μ‚΄νŽ΄λ³΄μž.
λ‘κ°œμ˜ νŒŒμΌμ„ ν•˜λ‚˜λ‘œ 묢어도 μΆ©λΆ„νžˆ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ,
Course.vue νŒŒμΌμ€ μ™„μ „νžˆ 외뢀와 λ‹¨μ ˆμ„ μ‹œμΌœ λ†“μ•˜λ‹€.
이 말은 Course.vue λŠ” 외뢀와 ν†΅μ‹ ν•˜λŠ” ajax μ½”λ“œλ„ μ—†κ³ , 단지 ν™”λ©΄λ‘œμ§λ§Œ λ“€μ–΄κ°€ μžˆλ‹€.
그리고 μ΄κ²ƒμ˜ μΆ”κ°€,μ‚­μ œ 등을 Management μ—μ„œ ν•˜λ„λ‘ κ΅¬ν˜„μ„ ν•˜μ—¬ 역할뢄리λ₯Ό ν™•μ‹€νžˆ ν•˜μ˜€λ‹€.
μ΄λŠ” local 개발 ν›„ prod ν™˜κ²½μœΌλ‘œ λ„˜μ–΄κ°ˆμ  같은 λ‹€λ₯Έ back-end λ₯Ό ν˜ΈμΆœν•˜λŠ” 경우,
μ΄λ ‡κ²Œ 뢄리λ₯Ό ν•˜μ—¬ μž¬μ‚¬μš©λ„λ₯Ό 높일 수 μžˆλ‹€.

Hybind for composing User Interfaces

src/components/CourseManagement.vue#updateCourse

updateCourse(course){
  // 1λ²ˆλ°©λ²• : ajax call
  $.ajax({
    url: course._links.self.href,
    method: 'PUT',
    contentType: "application/json",
    data: JSON.stringify(course),
    success:
      function(result){
       alert('Successfully Updated!');
     },
  })
  // 2λ²ˆλ°©λ²• : vue-resource
  this.$http.put(course._links.self.href).then(response => {
    this.someData = response.body;
    alert('Successfully Updated!')
  }, error => {
    // error callback
  });
  // 3λ²ˆλ°©λ²• : hybind
  course.$save().then(function(){
    alert('Successfully Updated!')
  });
}

μœ„μ˜ μ˜ˆμ œμ—μ„œ http λ₯Ό ν˜ΈμΆœν•˜λŠ” 3가지 방법을 κΈ°μˆ ν•˜μ˜€λ‹€.
μ—¬λŸ¬ λͺ¨λ“ˆλ“€μ„ μ“°λ©΄ λ”μš± λ‹€μ–‘ν•­ 방법이 μžˆμ§€λ§Œ λŒ€ν‘œμ μΈ λ°©λ²•λ“€λ§Œ κΈ°μˆ ν•˜μ˜€λ‹€.
1번 ajax 방식은 jquery λ₯Ό μ‚¬μš©ν•œ λŒ€μ€‘μ μΈ 방법이닀.
2번 방법은 vue μ—μ„œ λ§Œλ“  http λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ get, post, put, delete 등을 μ‰½κ²Œ ν˜ΈμΆœν•˜λŠ”
MVVM ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν• λ•Œ κ°€μž₯ λŒ€μ€‘μ μΈ 방법이닀.

κ·ΈλŸ¬λ‚˜ 1,2 번 방식을 μ‚¬μš©ν• λ•ŒλŠ” url 을 화면단에 맀핑을 ν•΄μ•Όν•œλ‹€λŠ” 점이 μžˆλ‹€.
HATEOAS API λ₯Ό μ‚¬μš©ν•˜μ˜€μ„λ•Œ 3번처럼 Hybind λ₯Ό μ‚¬μš© ν•˜μ—¬ url을 숨길 μˆ˜κ°€ μžˆλ‹€.
HATEOAS μ—λŠ” 자기 μžμ‹ μ˜ link 와 μ—°κ²°λ μˆ˜ μžˆλŠ” link 정보 및 객체의 property κΉŒμ§€ λͺ¨λ‘ κ°€μ§€κ³ λ‹€λ‹Œλ‹€.
Hybind μ—μ„œλŠ” λ‹€μŒκ³Ό 같이 window.backend = hybind("http://localhost:8080/")
μ΅œμƒμœ„ 링크만 선언을 ν•΄ λ†“μœΌλ©΄ ν•˜μœ„ 링크듀은 HATEOAS API λ₯Ό ν†΅ν•˜μ—¬ μžλ™μœΌλ‘œ μ°Ύμ•„ 맀칭을 ν•΄μ€€λ‹€.

⚠️ **GitHub.com Fallback** ⚠️