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

home2 게시판 Vue 게시판 라우터 질문 드립니다....ㅜㅠㅠ

라우터 질문 드립니다....ㅜㅠㅠ

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

    조소영
    참가자
    list.vue에서 블로그리스트를 클릭하면 해당 상세페이지인 detail.vue로 가게 하고 싶은데 계속 오류가 나더라구요...
    
    [list.vue]
    <template>
    <div>
    <div class="search_bar">
    <input @keyup="searchResult(keyword)" placeholder="제목을 검색해보세요." v-model="keyword">
    <button type="button" @click="searchResult(keyword)">< img src="../assets/search_icon.png"></button>
    </div>
    <!--검색전-->
    <div v-if="filteredList.length > 0">
    <ul class="blog_list">
    <li v-for="(list, i) in filteredList" :key="i" @click="counter[i]++;">
    <router-link :to="`/detail/${list.id}`" :blogData="blogData">
    <div class="post-img" :style="{ 'background-image': 'url(' + list.img + ')' }"></div>
    <h3>{{ list.title }}</h3>
    <p>{{ list.subtitle }}</p>
    <div class="list_bottom">
    <span>{{ list.date }}</span>
    <span>{{ list.name }}</span>
    </div>
    <p class="counter">조회수 : {{ counter[i] }}</p>
    </router-link>
    
    
    </div>
    <!--검색후-->
    <div v-else>
    <ul class="blog_list">
    <li v-for="(list, i) in blogData" :key="i" @click="counter[i]++;">
    <router-link :to="`/detail/${list.id}`" :blogData="blogData">
    <div class="post-img" :style="{ 'background-image': 'url(' + list.img + ')' }"></div>
    <h3>{{ list.title }}</h3>
    <p>{{ list.subtitle }}</p>
    <div class="list_bottom">
    <span>{{ list.date }}</span>
    <span>{{ list.name }}</span>
    </div>
    <p class="counter">조회수 : {{ counter[i] }}</p>
    </router-link>
    
    
    </div>
    </div>
    </template>
    <script>
    import blogData from '../assets/blogData';
    export default {
    name: 'list',
    data() { 
    return {
    blogData: blogData,
    keyword: '',
    filteredList: [],
    showOriginalLists: true,
    counter: [],
     }
     },
    methods: {
    searchResult(keyword) { 
    if (keyword === '') {
    this.filteredList = this.blogData;
    this.showOriginalLists = true;
     } else {
    this.filteredList = this.blogData.filter(item =>
    item.title.includes(keyword)
     );
    this.showOriginalLists = false;
     }
     },
    saveData() {
    sessionStorage.setItem('counter', JSON.stringify(this.counter));
     },
    loadData() {
    const savedCounter = sessionStorage.getItem('counter');
    if (savedCounter) {
    this.counter = JSON.parse(savedCounter);
     } else { 
    this.counter = this.blogData.map(() => 0);
     }
     },
     },
    mounted() {
    this.loadData();
     },
    watch: {
    counter: {
    handler() {
    this.saveData();
     },
    deep: true,
     },
     },
    };
    </script>
    [detail.vue]
    
    <template>
    <div class="detailpage">
    <h2>상세페이지</h2>
    <div>
     {{ blogData[$route.params.id].title }}
    </div>
    </div>
    </template>
    <script>
    export default {
    name : 'detailPage',
    props : {
    blogData : Array,
     },
    }
    </script>
    
    이렇게 list.vue와 detail.vue 소스 입니다.ㅇ...ㅠㅠ
    #92613

    codingapple
    키 마스터
    li태그 클릭하면 $router.push('/어쩌구') 코드 실행해서 페이지 변경해봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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