Vue3项目实战准备------音乐播放器(开源项目)(一)

本文档详细介绍了Vue项目的初始化步骤,包括使用Vue CLI创建项目、运行与配置SCSS、处理跨域问题以及设置路由。同时,展示了如何封装公共组件,如Header和TabBar,并实现选项卡功能。在项目运行中,通过devServer.proxy配置了代理以解决跨域问题,而在组件封装部分,重点在于路由配置和组件的复用。
摘要由CSDN通过智能技术生成

目录

1、项目初始化

项目运行

在main.js中导入scss文件

 项目后端接口是用node写好的--------初始化后端------启动

 配置跨域请求(当后端不是自己写的时候后端没有跨域请求,就只能通过前端解决跨域问题)

devServer.proxy(配置参考 | Vue CLI)

2、封装公共组件 

(1)配置路由

 在router文件夹的index.js中配置路由

(2)header组件和tabbar组件

(3)选项卡


 

1、项目初始化

vue create music_player

 

项目运行

npm run serve

准备的文件之scss

在main.js中导入scss文件

import './assets/scss/index.scss'

遇到报错:scss中引用样式变量导致报错无法识别

 以及如何关闭语法格式检验:lintOnSave(配置参考 | Vue CLI

解决方法:vue的vue.config.js配置项文件配置(配置参考 | Vue CLI)

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  css: {
    loaderOptions: {
      //导入含变量的scss文件
      scss: {
        additionalData: `
        @import "@/assets/scss/mixin.scss";
        @import "@/assets/scss/variable.scss";
        `
      },
    }
  },
  //关闭语法检测
  lintOnSave: false
})

 项目后端接口是用node写好的--------初始化后端------启动

cd vue3-muisc-player\MusicPlayer_node\NeteaseCloudMusicApi-master
npm i
node app.js

 配置跨域请求(当后端不是自己写的时候后端没有跨域请求,就只能通过前端解决跨域问题)

devServer.proxy(配置参考 | Vue CLI

vue.config.js: 运行在8080端口---->vue开启一个运行在8080端口的服务器---->3000端口(真实服务器)

module.exports = defineConfig({
  devServer: {
    proxy: 'http://localhost:3000'
  }
})

2、封装公共组件 

(1)配置路由

 在router文件夹的index.js中配置路由

const routes = [
  {
    path: '/',
    // 重定向
    redirect: '/recommend'
  },
  {
    path: '/recommend',
    component: () => import('@/views/Recommend')
  },
  {
    path: '/singer',
    component: () => import('@/views/Singer')
  },
  {
    path: '/toplist',
    component: () => import('@/views/TopList')
  },
  {
    path: '/search',
    component: () => import('@/views/Search')
  },
  
]

(2)header组件和tabbar组件


<template>
<!-- App.vue -->
  <nav>
    <my-header></my-header>
    <my-tabBar></my-tabBar>
  </nav>
  <!-- 路由出口 -->
  <router-view></router-view>
</template>
<script setup>
import MyHeader from "@/components/Header"
import MyTabBar from "@/components/TabBar"
</script>

(3)选项卡

<template>
    <div class="tab-bar">
        <router-link class="tab-item" v-for="item in tabs" :key="item.path" :to="item.path">
            <span class="tab-link">{{ item.name }}</span>
        </router-link>
    </div>
</template>
<script setup>
const tabs =  [
    {
        name: '推荐',
        path: '/recommend',
    },
    {
        name: '歌手',
        path: '/singer',
    },
    {
        name: '排行',
        path: '/toplist',
    },
    {
        name: '搜索',
        path: '/search',
    },
]
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.MUXIAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值