• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Vue 게시판 반복문으로 그린 button 이벤트 실시간 증감안함 문제

반복문으로 그린 button 이벤트 실시간 증감안함 문제

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 글쓴이
  • #22874

    서준형
    참가자

    할수록 신기합니다..

    반복문으로 버튼을 만들어 숫자 증감 테스트를 해봤는데  증가를 안하더라고요(반복문 신고버튼)

    그래서 cnt값을 배열로 하지 않고 단순하게 해봤을댄 잘됩니다.(단일신고 버튼)

     

    그러고나서 반복문 버튼을 누르니 숫자가 증가되는 기이한 현상이 나타나더라고요

    문법적인 오류가 있는건지요? 아니면 제가 모르는 다른 문제가 있는건지요?

    강의엔 for문 버튼 처리에 대한게 없어서 문의드립니다.

     

    시뮬레이션은 다음과 같습니다.(링크 클릭시 gif그림)

    http://naver.me/x0GzjjCs

     

    코드내역은 아래와 같습니다.

     

     

     

     

    <template>
    <div>
      <div v-for="(a,i) in 3" :key="i">
        <h4>{{a}}원룸</h4>
        <p>{{price[i]}} 만원</p>
        <button @click="cnt[i] += 1">반복문 신고{{i}}</button> <span>신고수 {{cnt[i]}}</span>
      </div>
      <button v-on:click="cnt1 += 1">단일 신고</button> <span>신고수 {{cnt1}}</span>
    </div>
    </template>

    <script>
      export default {
        data() {
          return{
            price : [600,700,800],
            product : ['일원동','역삼동','칠곡동'],
            cnt : [0,0,0],
            cnt1 : 0
          }
        },
        methods: {

        }
      }
    </script>

    #22881

    codingapple
    키 마스터

    package.json에 있는 vue 항목 버전이 무엇입니까

    #22900

    서준형
    참가자

    vue2 버전입니다.
    bootstrap 관련해서도 테스트하다보니 부트스트랩은 vue3을 지원안한다고해서요..

    아래는 packge.json 내용입니다. 

     

     "name": "test",
      "version": "0.1.0",
      "private": true,
      "scripts": {
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint"
      },
      "dependencies": {
        "core-js": "^3.6.5",
        "vue": "^2.6.11"
      },
      "devDependencies": {
        "@vue/cli-plugin-babel": "~4.5.0",
        "@vue/cli-plugin-eslint": "~4.5.0",
        "@vue/cli-service": "~4.5.0",
        "babel-eslint": "^10.1.0",
        "eslint": "^6.7.2",
        "eslint-plugin-vue": "^6.2.2",
        "vue-template-compiler": "^2.6.11"
      },
      "eslintConfig": {
        "root": true,
        "env": {
          "node": true
        },
        "extends": [
          "plugin:vue/essential",
          "eslint:recommended"
        ],
        "parserOptions": {
          "parser": "babel-eslint"
        },
        "rules": {}
      },
      "browserslist": [
        "> 1%",
        "last 2 versions",
        "not dead"
      ]

    #22906

    codingapple
    키 마스터

    2버전은 원래그렇습니다 splice 쓰거나 ... 쓰거나 그러면 됩니다

    vue3용으로 누가 대충만든거 있습니다 https://www.npmjs.com/package/bootstrap-vue-3

    실은 굳이 외부 라이브러리 없어도 bootstrap css 파일만 넣어써도 상관없습니다 

     

    #22924

    서준형
    참가자

    vue3로 다시만들어서 하니 되네요...흠.. 확인감사합니다.

    #23028

    최봉재
    참가자

    저도 그걸로 고생했는데 근본적인 문제는 새로운 객체가 아니어서 바인딩이 안된 겁니다.

    어레이 element 의 값을 변환해도 어레이는 여전히 같은 주소 값을 가집니다. 

    얕은복사, 깊은 복사 개념을 이해하면 더욱 도움이 되실 것 같습니다.

     

    const newArr = Object.assign([], this.reports);
    newArr[i]++;
    this.reports = newArr;

     

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠