mp-vue 或vue或uni-app里面使用v-html展示图片或者播放视频

项目场景:

mp-vue 或vue或uni-app里面使用v-html展示图片或者播放视频


问题描述

因为mp-vue不支持播放视频,且v-html一般展示的是富文本,在上传图片或者音视频的时候不会给全路径,所以不能展示

<view v-html="item.bookdoc"></view>

解决方案:

// 解决富文本图片展示不了,使用正则匹配对应的img,然后修改src路径
bookdoc = bookdoc.replace(
			/<img\s+(?:src|data-mce-src)="([^"]+)"/g,
			(match: any, p1: string) => {
				return '<img style="width:100%;height:auto" src="' + 自己的真实路径 + '/' + p1 + '"';
			}
		);

// 解决富文本视频展示问题
// 我是单独弄个video,然后使用正则给富文本里面的视频src提取出来
<video  :src="videosrc" @play.stop="onVideoPlay"
	controls="controls" width="100%" height="auto"></video>
	// src 提取
const regex = /<video\b[^>]*?\bsrc\s*=\s*(['"])(.*?)\1[^>]*?>/i;
let match = v.optionTitle.match(regex);
if (match) {
	videosrc = 'xxx自己的真实路径前缀' + '/' + match[2];
} else {
	v.showvideo = true;
}
<think>嗯,用户想了解如何使用vue-cli创建支持Vue3的uni-app项目。首先,我得确认一下当前uni-appVue3的支持情况。记得之前uni-app官方是在HBuilderX中支持Vue3的,但用户可能更习惯使用vue-cli。需要检查官方文档是否有相关说明。 首先,应该确认uni-appVue3支持需要哪个版本。根据之前的了解,uni-app从v3.0.0-alpha开始支持Vue3,但可能需要特定的模板。用户可能已经安装了vue-cli,所以需要指导他们安装正确的模板。 接下来,创建项目的命令。官方可能有特定的模板名称,比如@dcloudio/vue-cli-plugin-uni或者需要指定版本。可能需要使用vue create -p来指定模板,例如vue create -p dcloudio/uni-preset-vue#vue3 my-project。这里要确保分支版本号正确,否则可能安装的是Vue2的模板。 然后,项目创建后的配置。可能需要检查package.json中的依赖,确保@dcloudio/uni-cli-shared和相关的Vue3依赖是否正确安装。如果有问题,可能需要手动安装vue@next和@vue/compiler-sfc等。 运行和编译方面,uni-app的命令应该还是相同的,比如npm run dev:%PLATFORM%,但需要确认Vue3下的平台支持是否有变化,比如H5和小程序是否都兼容。可能需要提醒用户注意某些插件组件是否支持Vue3,避免兼容性问题。 此外,用户可能想知道项目结构的变化,比如main.js中的createApp用法是否与标准Vue3一致。需要指出uni-app可能对创建实例有封装,比如使用createSSRAppcreateUniApp,这需要参考官方文档确认。 最后,常见问题处理,比如旧项目迁移到Vue3的注意事项,或者依赖冲突的解决方法。可能需要建议用户检查插件兼容性,逐步迁移,或者寻求社区支持。 总结步骤应该是:环境准备,创建项目,安装依赖,运行调试,注意事项。需要确保每个步骤的命令准确,特别是模板的指定和依赖版本的正确性。同时,提醒用户注意Vue3和Vue2的语法差异,以及uni-app特有的一些限制。</think>以下是通过vue-cli创建支持Vue3的uni-app项目的分步指南: 一、环境准备 1. 确保已安装: - Node.js(建议v14.18+) - Vue CLI 4.x+:`npm install -g @vue/cli` - HBuilderX(可选,用于真机调试) 二、创建项目 ```bash # 使用Vue3模板创建项目 vue create -p dcloudio/uni-preset-vue#vue3 my-project # 根据提示选择: # 1. 选择默认模板(Default (Vue3)) # 2. 等待依赖安装完成 ``` 三、项目结构说明 ``` ├── src │ ├── App.vue # 应用入口组件 │ ├── main.js # Vue3入口文件 │ ├── manifest.json # 应用配置 │ ├── pages.json # 页面路由配置 │ └── pages/ # 页面组件目录 ├── uni.scss # 全局样式变量 └── vue.config.js # 构建配置 ``` 四、关键配置验证 1. 检查package.json应包含: ```json { "dependencies": { "@dcloudio/uni-app": "^3.0.0-alpha-3040020221209001", "vue": "^3.2.45" } } ``` 2. 检查main.js应为Vue3写法: ```javascript import { createSSRApp } from 'vue' import App from './App.vue' export function createApp() { const app = createSSRApp(App) return { app } } ``` 五、运行与调试 ```bash # 微信小程序 npm run dev:mp-weixin # H5 npm run dev:h5 # 编译生产环境 npm run build:mp-weixin ``` 六、注意事项 1. 组件差异: -使用Vue3组合式API(`setup`语法) - 部分uni原生组件需要v3.3+版本支持 2. 插件兼容性: - 检查第三方插件是否支持Vue3 - 推荐使用uniapp官方插件市场筛选Vue3版本 3. 迁移项目: - 旧项目迁移需逐步替换Options API - 使用`@vue/compat`兼容模式过渡(非官方推荐) 七、常见问题处理 1. 编译报错处理: ```bash # 清除缓存后重试 npm run clean npm install ``` 2. 兼容Vue2写法: ```javascript // 不推荐但支持 export default { setup() { // 组合式API } } ``` 3. TypeScript支持: ```bash vue add typescript ``` 最新版本状态可通过以下命令查询: ```bash npm view @dcloudio/uni-app versions --json ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值