• 关于慕课网vue教程vue-music项目中所遇到的问题


    在看慕课网的vue.js高级课程音乐app时,发现由于vue-cli已由2变为3,better-scroll也因为版本更新的原因,如果照着源代码,会出现很多小问题

    1.框架搭建

    搭项目框架时,因为vue-cli3如果自己选择了babel,stylus等,最后都是会构建好的,所以不需要跟着教学视频再安装相关loader或插件。

    一定要根据自己的情况,视情况而定,不要盲目跟着老师安装东西

    2.写slider组件时发现出现很多的小问题,比如不能轮播,currentPageIndex值不对,后来发现因为版本的更新很多小细节进行了修改

    如:loop的初始化,轮询时pageIndex不需要+1,this.slider.goToPage()可以用this.slider.next()代替,click: false时,a标签反倒不能跳转等

    以下为相关代码:

        _setSliderWidth(isResize) {
                    this.children = this.$refs.sliderGroup.children
    
                    let width = 0
                    let sliderWidth = this.$refs.slider.clientWidth
                    for (let i = 0; i < this.children.length; i++) {
                        let child = this.children[i]
                        addClass(child, 'slider-item')
    
                        child.style.width = sliderWidth + 'px'
                        width += sliderWidth
                    }
                    if (this.loop && !isResize) {
                        width += 2 * sliderWidth
                    }
                    this.$refs.sliderGroup.style.width = width + 'px'
                },
                _initDots() {
                    this.dots = new Array(this.children.length)
                },
                _initSlider() {
                    this.slider = new BScroll(this.$refs.slider, {
                        scrollX: true,
                        scrollY: false,
                        momentum: false,
                        snap: {
                            loop: this.loop,
                            threshold: 0.3
                        },
                        click: true
                    })
                    this.slider.on('scrollEnd', () => {
                        let pageIndex = this.slider.getCurrentPage().pageX
                        this.currentPageIndex = pageIndex
    
                        if(this.autoPlay) {
                            clearTimeout(this.timer)
                            this._play()
                        }
                    })
                },
                _play() {
                    this.timer = setTimeout(()=> {
                        this.slider.next();
                    }, this.interval)
                }
    

    3.在getDiscList接口获取数据时通过服务器代理进行referer伪造时,由于使用的是cli3所以并没有dev-serve.js

    解决办法是在,vue.config.js中进行配置

    代码如下

    const path = require('path');
    const express = require('express')
    const axios = require('axios')
    const app = express()
    const apiRoutes = express.Router()
    
    module.exports = {
        configureWebpack: {
            resolve: {
                alias: {
                    'common': path.join(__dirname, 'src/assets'),
                    'components': path.join(__dirname, 'src/components'),
                    'api': path.join(__dirname, 'src/api'),
                    'base': path.join(__dirname, 'src/base'),
                },
            }
        },
        devServer: {
            before(apiRoutes){
                apiRoutes.get('/api/getDiscList',(req,res)=>{
                    const url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg';
                    axios.get(url, {
                        headers: {
                            referer: 'https://c.y.qq.com/',
                            host: 'c.y.qq.com'
                        },
                        params: req.query
                    }).then((response) => {
                        res.json(response.data)
                    }).catch((e) => {
                        console.log(e)
                    })
                });
            }
        }
    }
    

      

      

  • 相关阅读:
    centos 7 部署confluence
    在Ubuntu操作系统里安装Docker
    Python模块-pip
    微信小程序 等宽不等高瀑布流
    微信小程序 保存图片和复制文字 功能
    C# 模拟鼠标移动和点击
    使用Fiddler抓包工具更改请求的url请求参数
    C#中Request.ServerVariables详细说明及代理
    (C# webservice 获取客户端IP疑难杂症)---试过n种方法都失败,获取代理服务器,访问者客户端真实IP
    C# 命名管道中客户端访问服务器时,出现“对路径的访问被拒绝”
  • 原文地址:https://www.cnblogs.com/Anne3/p/11207234.html
Copyright © 2020-2023  润新知