> 웹 프론트엔드 > View.js > Vue를 사용하여 Gudong FM과 유사한 페이지 디자인을 구현하는 방법은 무엇입니까?

Vue를 사용하여 Gudong FM과 유사한 페이지 디자인을 구현하는 방법은 무엇입니까?

王林
풀어 주다: 2023-06-25 20:21:33
원래의
1635명이 탐색했습니다.

Vue.js는 널리 사용되는 JavaScript 프레임워크입니다. Vue를 사용하여 Gudong FM과 같은 페이지 디자인을 구현하는 방법을 알고 싶다면 여기에 몇 가지 기본 단계와 기술이 있습니다.

1단계: 구동FM 페이지 디자인 및 기능 이해

Vue.js를 사용하기 전에 구동FM의 페이지 디자인 및 기능을 이해해야 합니다.

구동FM은 음악 앱으로, 크게 개인 센터, 음악 목록, 재생 페이지의 세 페이지로 구성되어 있습니다. 개인 센터 페이지에는 사용자 정보가 표시되고, 음악 목록 페이지에는 노래 목록이 표시되며, 재생 페이지에는 현재 재생 중인 음악과 해당 제어 버튼이 표시됩니다.

2단계: Vue 프로젝트 빌드

Vue.js를 사용하여 Gudong FM 페이지를 빌드하려면 Node.js를 설치하고 Node.js에서 제공하는 npm 도구를 사용하여 Vue CLI를 설치해야 합니다.

명령줄 터미널을 열고 다음 명령을 사용하여 Vue CLI를 설치하세요.

npm install -g vue-cli
로그인 후 복사

설치가 완료된 후 명령줄 창에서 다음 명령을 사용하여 새 Vue.js 프로젝트를 만들 수 있습니다.

vue init webpack my-project
로그인 후 복사

Where , my-project는 프로젝트의 이름이며 필요에 따라 수정할 수 있습니다.

3단계: 페이지 디자인 구현

  1. 먼저 App.vue 파일에 Personal, MusicList, Player의 세 가지 구성 요소를 만듭니다.
<template>
  <div>
    <Personal />
    <MusicList />
    <Player />
  </div>
</template>

<script>
import Personal from './components/Personal.vue'
import MusicList from './components/MusicList.vue'
import Player from './components/Player.vue'

export default {
  name: 'app',
  components: {
    Personal,
    MusicList,
    Player
  }
}
</script>
로그인 후 복사
  1. 개인 정보를 표시하는 개인 구성 요소를 만듭니다.
<template>
  <div class="personal">
    <div class="avatar-box">
      <img class="avatar" src="./assets/avatar.png" alt="头像">
    </div>
    <div class="user-info">
      <div class="username">{{ username }}</div>
      <div class="user-email">{{ email }}</div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Personal',
  data () {
    return {
      username: '张三',
      email: 'zhangsan@example.com'
    }
  }
}
</script>
로그인 후 복사
  1. 노래 목록을 표시하려면 MusicList 구성 요소를 만듭니다.
<template>
  <div class="music-list">
    <div class="music-item" v-for="(item, index) in musicList" :key="index">
      <div class="music-thumbnail">
        <img :src="item.thumbnail" alt="歌曲封面">
      </div>
      <div class="music-info">
        <div class="music-name">{{ item.name }}</div>
        <div class="music-artist">{{ item.artist }}</div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'MusicList',
  data () {
    return {
      musicList: [
        {
          name: '浪子回头',
          artist: '刘德华',
          thumbnail: './assets/album1.jpg'
        },
        {
          name: '夏天的风',
          artist: '周杰伦',
          thumbnail: './assets/album2.jpg'
        },
        {
          name: '告白气球',
          artist: '周杰伦',
          thumbnail: './assets/album3.jpg'
        }
      ]
    }
  }
}
</script>
로그인 후 복사
  1. 플레이어 구성요소를 생성하여 플레이어 및 컨트롤 버튼을 표시합니다.
<template>
  <div class="player">
    <div class="music-info">
      <div class="music-name">{{ currentMusic.name }}</div>
      <div class="music-artist">{{ currentMusic.artist }}</div>
    </div>
    <div class="player-controls">
      <button class="prev-btn" @click="prev">上一首</button>
      <button class="play-btn" @click="play">{{ playing ? '暂停' : '播放' }}</button>
      <button class="next-btn" @click="next">下一首</button>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Player',
  data () {
    return {
      currentMusic: {},
      playing: false,
      musicList: [
        {
          name: '浪子回头',
          artist: '刘德华',
          url: './assets/songs/song1.mp3',
          thumbnail: './assets/album1.jpg'
        },
        {
          name: '夏天的风',
          artist: '周杰伦',
          url: './assets/songs/song2.mp3',
          thumbnail: './assets/album2.jpg'
        },
        {
          name: '告白气球',
          artist: '周杰伦',
          url: './assets/songs/song3.mp3',
          thumbnail: './assets/album3.jpg'
        }
      ]
    }
  },
  methods: {
    play () {
      this.playing = !this.playing
    },
    prev () {
      // 上一首
    },
    next () {
      // 下一首
    }
  }
}
</script>
로그인 후 복사

4단계: 페이지 상호 작용 구현

  1. 클릭 이벤트를 MusicList 구성 요소의 노래 목록에 바인딩합니다.
<template>
  <div class="music-item" v-for="(item, index) in musicList" :key="index" @click="playMusic(index)">
    ...
  </div>
</template>

<script>
export default {
  name: 'MusicList',
  methods: {
    playMusic (index) {
      this.$parent.$refs.player.currentMusic = this.musicList[index]
    }
  }
}
</script>
로그인 후 복사
  1. Player 컴포넌트에서 재생 제어 기능을 구현합니다.
<template>
  <div class="player">
    ...
  </div>
</template>

<script>
export default {
  name: 'Player',
  data () {
    return {
      // 省略
    }
  },
  methods: {
    play () {
      if (this.currentMusic.url) {
        const audio = this.$refs.audio
        if (this.playing) {
          audio.pause()
        } else {
          audio.play()
        }
        this.playing = !this.playing
      }
    },
    prev () {
      const index = this.musicList.indexOf(this.currentMusic)
      let prevIndex = index - 1
      if (prevIndex < 0) {
        prevIndex = this.musicList.length - 1
      }
      this.currentMusic = this.musicList[prevIndex]
    },
    next () {
      const index = this.musicList.indexOf(this.currentMusic)
      let nextIndex = index + 1
      if (nextIndex >= this.musicList.length) {
        nextIndex = 0
      }
      this.currentMusic = this.musicList[nextIndex]
    }
  }
}
</script>
로그인 후 복사

5단계: 프로젝트 실행

프로젝트 루트 디렉터리에서 다음 명령어를 실행합니다.

npm install
npm run dev
로그인 후 복사

이렇게 하면 브라우저에서 Fake Gudong FM 페이지를 볼 수 있습니다. 노래 목록에서 노래를 클릭하면 플레이어가 자동으로 해당 노래로 전환하여 재생을 시작합니다.

요약:

Vue.js를 사용하여 Gudong FM을 모방하는 페이지를 구축하려면 다음과 같은 기본 기술을 숙지해야 합니다.

  • Vue CLI를 설치하고 Vue.js 프로젝트를 생성합니다.
  • 3가지 구성 요소를 포함한 페이지 요구 사항을 구현합니다. , MusicList 및 Player;
  • 는 노래 목록의 클릭 이벤트 및 플레이어 재생 제어 기능을 포함한 페이지 상호 작용을 구현합니다.

이 기사를 공부한 후에는 이미 이러한 기본 기술을 이해하고 Vue.js를 사용하여 자신만의 Gudong FM 페이지를 구축해 볼 수 있습니다.

위 내용은 Vue를 사용하여 Gudong FM과 유사한 페이지 디자인을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿