【Vue.js】YouTube Data API를 axios로 취득해 표시하는 샘플(Firebase·Vue CLI v4.0.4)

환경 메모
⭐️Mac OS Mojave 버전 10.14
⭐️Firebase Hosting
⭐️Vue CLI v4.0.4

YouTube Data API를 axios로 가져오고 표시하는 샘플
Firebase Hosting과 Vue CLI v4.0.4를 사용합니다.

↓↓ 실제로 움직여 본 동영상
htps : // 라고 해서 r. 코m/논온카 피바라/s타츠 s/1185956946630692864

🎬Vue.js🎬YouTube의 동영상🎀API요청 일람표시🎀샘플 만들어 보았다. Vue CLI (v4.0.4) Vue.js의 axios에서 API 통신 🌏하고 Firebase (FirebaseHosting)에 배포 💡💡 제대로 움직였다 - non (@nonnonkapibara)


먼저, YouTube API를 취득한다.

자세한 내용은 아래에 기재되어 있습니다.



【Vue.js】Vue.js에서 사용하기 위한 YouTube 동영상 검색 「YouTube Data API v3」의 API 키 취득

htps // t. 코/y7hw3←Rぃ



프로젝트를 만듭니다. 자세한 내용은 아래에 설명되어 있습니다.



【Vue.js】Firebase 프로젝트에서 Vue CLI v4.0.4 만들기(Firebase · Vue CLI v4.0.4)

#Vue



파일 구성



#vuejs



①App.vue



TOP 페이지 위의 링크에 'Search Video' 추가

#firebase



<template>
  <div id="app">
    <div id="nav">
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link> |
      <router-link to="/video">Search Video</router-link>
    </div>
    <router-view/>
  </div>
</template>


피 c. 라고 r. 이 m/C5zCM6n78R



②components - SearchVideo.vue



YouTube 검색 목록 (Vue.js CLI) 페이지

10월 20, 2019



<template>
<div>
  <div><font size="6" color="#c71585">YouTube Search list (Vue.js CLI)</font></div>
  <br>
  <input size="40" v-model="keyword" placeholder="検索キーワードを入力">
  <button @click="search_video">検索</button>
  <table cellspacing="0" cellpadding="5" v-show="results">
    <tr>
      <th width="50">
        <font>No</font>
      </th>
      <th width="200">
        <font>Video</font>
      </th>
      <th width="700">
        <font>Contents</font>
      </th>
    </tr>

    <tr v-for="(movie, index) in results" v-bind:key="movie.id.videoId">
      <!-- No -->
      <td valign="top" width="50">{{ index + 1 }}</td>
      <!-- Video -->
      <td valign="top" width="300">
        <a v-bind:href="'https://www.youtube.com/watch?v=' + movie.id.videoId">
          <img width="300" height="200" v-bind:src="movie.snippet.thumbnails.medium.url">
        </a>
      </td>
     <!-- titleとdescription -->
      <td align="left" valign="top" width="700">
        <font size="5" color="#c71585"><b>{{ movie.snippet.title }}</b></font>
        <br>
        {{ movie.snippet.description}}</td>
    </tr>
  </table>
</div>
</template>

<script>
import axios from 'axios';

export default {
  name: "SearchVideo",
  data: function() {
    return {
      results: null,
      keyword: "nonkapibara",
      order: "viewCount", // リソースを再生回数の多い順に並べます。
      params: {
        q: "", // 検索クエリを指定します。
        part: "snippet",
        type: "video",
        maxResults: "20", // 最大検索数
        key: "★★★★★KEYをここに入れる★★★★★"
      }
    };
  },
  props: {
    msg: String
  },
  methods: {
    search_video: function() {
      this.params.q = this.keyword;
      var self = this;
      axios
        .get("https://www.googleapis.com/youtube/v3/search", {
          params: this.params
        })
        .then(function(res) {
          self.results = res.data.items;
        })
    }
  }
};
</script>

<style>

table {
  border-collapse: collapse;
  border: solid 2px #c71585;/*表全体を線で囲う*/
}
table th {
  color: #fff0f5;/*文字色*/
  background: #ff69b4;/*背景色*/
  border: dashed 1px #c71585;
}

table td {
  background: #fff0f5;
  border: dashed 1px #c71585;
}

</style>



③ router - index.js



  {
    path: '/video',
    name: 'video',
    component: () => import('../views/Video.vue')
  }


htps : // 코 m / 논카 피바라 / ms / 591 cdb2 아 b9 아 아 7 오 55 b9



④ views - Video.vue



htps : // 이 m/논카피바라/있어 ms/6146106c524b652f49db



<template>
  <div class="app">
    <SearchVideo/>
  </div>
</template>

<script>
import SearchVideo from '@/components/SearchVideo.vue'

export default {
  name: 'app',
  components: {
    SearchVideo
  }
}
</script>



완성! !


좋은 웹페이지 즐겨찾기