찾다

 >  Q&A  >  본문

공개 이벤트 버스를 사용하는 vue.js

vue 프레임워크 사용법을 연습하고 todo 데모를 작성하면서 할 일을 표시하는 input 요소(new-input 컴포넌트)와 ul 및 li 요소(todo-items 및 todo-item 컴포넌트)를 작성했습니다. 두 개의 병렬 구성 요소를 생성합니다. 이제 추가할 입력 구성 요소에 텍스트를 입력하고, 공개 이벤트 버스를 사용하여 업데이트 이벤트를 트리거하고, todo-items 구성 요소의 수명 주기에 후크 기능을 생성하여 업데이트 이벤트를 수신합니다. 구성 요소의 데이터를 수정하면 문제가 발생합니다. 예, 구성 요소의 todos 배열이 정의되지 않았다는 오류 메시지가 표시됩니다.

아래 코드를 게시하세요

으아악

알 수 없는 이유로 todo-items의 deleteItem 메서드는 todos 배열에서도 작동할 수 있습니다.

黄舟黄舟2803일 전954

모든 응답(2)나는 대답할 것이다

  • typecho

    typecho2017-06-12 09:27:35

    모바일에서 답변
    문제는 주로 버스에서 발생합니다.$emit 버스는 Vue의 새로운 인스턴스이며 할 일이 없습니다.

    Inside

    created:
    const that = this
    이후 이 내부 버스는 that으로 변경됩니다

    휴대폰으로 답변, 자세한 코드는 작성하지 않으니 이해해주세요

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:27:35

    버스 인스턴스에서 모니터링하는 콜백 함수에서 예상한 vue 인스턴스를 가리키지 않습니다. 해결책은 위에서 언급한 바와 같습니다.

    회신하다
    0
  • 취소회신하다