vue+ssr 项目踩坑...

本文记录了Vue项目开发中的常见问题与解决办法。包括组件开发,如创建和引用组件;H5 video标签编译loader报错、静态资源路径问题、MP4文件展示问题的解决;还涉及组件间传值、插件引用、CSS文件引用等,以及前端启动服务器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一些在项目过程中遇到的问题以及解决办法

1.组件开发
对于可重复复用的样式或结构,直接开发成对应的component,在vue组件中直接引用
例如:header部分
创建组件:
1)可在项目目录中新建一个components目录,用来存放各个公用的组件
在这里插入图片描述
2)新建一个header.vue文件(注:vue项目中所有的组件都是.vue结尾的文件)
包含三部分:

<template>
	//用来布局,相当于html  注意:template中只可以有一个根节点
</template>

<script>
	//用来写业务逻辑以及初始化一些变量等
	export dafualt {
		name: "Header", //该组件名字
		data () {
			return {
			 	***
			}
		},
		methods: {
			***function***
		},
		computed: {
			***
		},
		created () {
			***
		}
	}
</script>

<style lang="stylus" scoped>
		//scoped 表示改样式作用域——即只在该vue文件中生效
</style>

3)组件创建之后,需要在引用的父组件中引入该子组件,并注册

<script>
import HomeHeader from './components/Header'   //文件后缀可省略,vue机制会优先查找.vue结尾的文件

export default {
		name: 'Home',
		components :{  //注册
				HomeHeader
	}

}
</script>

4)然后就可以在已经注册子组件的父组件中使用子组件,使用方法如下:

<template>
<div>
<home-header></home-header>    //注意:标签的命名自动改变
</div>
</template>

5)以上就是创建component并在父组件使用的方法

2.第一次使用H5的video标签时,编译loader报错
原因:未在webpack的配置文件(如:webpack.base.config.js)中,给.video结尾的文件指定相应的loader
代码:

{
	text: /\.(mp4|ogg|webm|mp3|wav|flac|aac)(\?.*)?$/,   //以*结尾的文件
	loader: 'url-loader',     //指定loader
	options: {
		limit:1000,
		name: "voice/[name].[hash:6].[ext]"
	}
}

3.直接在vue组件中引用静态资源(如图片资源)时,找不到路径报错
场景:非直接引用,定义在list中时 如:

imgList: [
		{
			id: "01",
			imgUrl: "../assets/1.jpg"
		},
		{
			id: "02",
			imgUrl: "../assets/2.jpg"
		}
]

解决方法:
1)先通过import引入,使用时直接引用img1和img2

import img1 from '../assets/1.jpg'
import img2 from '../assets/2.jpg'

2)在src同级目录下,新建一个static目录,用于存放静态资源,再通过相对路径读取static目录下的资源(有待验证…)

4.在vue组件中引用MP4格式的文件,路径没问题,但页面无法展示该video
场景:非直接引用,通过接口返回动态绑定
原始代码:

<video  controls = "controls">
	<source :src="videoUrl" type="video/mp4">
</video>
this.videoUrl = res.data.videoUrl

解决方法: 给video标签绑定ref属性

<video ref="video" controls = "controls">
	<source src="" type="video/mp4">
</video>

然后在逻辑代码里动态绑定src路径

this.$refs.video.src = res.data.videoUrl

问题解决

5.关于组件间传值

6.引用插件(轮播图等)

7.引用外部css文件

8.创建全局css样式的function 到处引用

9.前端开发如何自己启动服务器(未完待续…)
1)首先在src同级目录新建server文件夹,同时新建index.js文件 设置本地服务器地址/api目录用于放置json文件/static文件夹用于存放静态资源

var server = app.listen(3000,function(){
		console.log('listening at port 3000')
})

2)配置完成后,在项目目录文件执行 node server/index.js 然后打开 http://localhost:3000/static/video01.mp4 查看服务器是否启动成功(video01提前放在static目录下)

3)启动成功之后,就可以自己

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值