20240919uniapp学习工作-自定义控件

继续看同事的自定义组件

<template>
	<view class="bg-white margin-b-10" @click="click">
		<view class="margin-r-10">
			<view class="flex-row-nowrap flex-justify-sb border-b padding-5" v-for="item in card.main">
				<view class="text-indent">
					<text v-if="item.left">{{item.left.name}} : {{item.left.value}}</text>
				</view>
				<view class="margin-r-10">
					<text v-if="item.right">{{item.right.name}} : {{item.right.value}}</text>
				</view>
			</view>
			<view class="text-indent margin-l-5">
				<slot></slot>
			</view>
		</view>
	</view>
</template>

经过这段时间的学习, 上面代码大部分都看得懂了.

这两个样式昨天刚学过,

.flex-row-nowrap {
		display: flex;弹性盒子布局
		flex-wrap: nowrap;元素摆在一行
	}
.flex-justify-sb {
		justify-content: space-between;把元素排列好之后,剩余元素平均分配到元素之间
	}

v-for 是新东西, 学一下

v-for 指令值必须使用特殊语法 alias in expression 为正在迭代的元素提供一个别名:

比如这样的代码及效果:

<template>
	<view class="container">
		<div v-for="item in items">
			{{item.text}}
		</div>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				items:[{"text":"文本1"},{"text":"文本2"},{"text":"文本3"},]
			}
		},
		methods: {

		}
	}
</script>

<style>
	.container {
		padding: 20px;
		font-size: 14px;
		line-height: 24px;
	}
</style>

也可以为索引指定别名, 如果用在对象, 则是键值:

比如把上面代码的div部分改为

<div v-for="(item,index) in items">
			第{{index+1}}个 : {{item.text}}
		</div>

效果:

对象的遍历方式则是, 是怎么回事相信做过开发的一看就知道了.

<div v-for="(value, key) in object"></div>
<div v-for="(value, name, index) in object"></div>

也可以在 v-for 的变量别名时使用解构:

<div v-for="{text} in items">
			{{text}}
		</div>

这种形式也可以带索引:

<div v-for="({text},index) in items">
			第{{index+1}}个 : {{text}}
		</div>

v-for 还有一些内容, 暂时看会这些就行. 

燃后这段代码就没什么不懂的了.

<template>
	<view class="bg-white margin-b-10" @click="click">
		<view class="margin-r-10">
			<view class="flex-row-nowrap flex-justify-sb border-b padding-5" v-for="item in card.main">
				<view class="text-indent">
					<text v-if="item.left">{{item.left.name}} : {{item.left.value}}</text>
				</view>
				<view class="margin-r-10">
					<text v-if="item.right">{{item.right.name}} : {{item.right.value}}</text>
				</view>
			</view>
			<view class="text-indent margin-l-5">
				<slot></slot>
			</view>
		</view>
	</view>
</template>

继续看template中最后一段, 也没什么看不懂的了, 这都是学习的效果.

<template>
	<view class="bg-white margin-b-10" @click="click">
		……
		<view class="color-grays text-right padding-5" v-if="showEdit">
			<view class="margin-r-10 padding-r-5">
				<text class="margin-20" @click="remove">
					<uni-icons type="trash" size="20" color="#ccc"></uni-icons>
					<text class="text">删除</text>
				</text>
				<text @click="edit">
					<uni-icons type="compose" size="20" color="#ccc"></uni-icons>
					<text class="text">编辑</text>
				</text>
			</view>
		</view>
	</view>
</template>

自定义组件界面

再往下看脚本部分

<script>
	import status from 'status.js'
	export default {
		name: "custom-card",
		data() {
			return {
				property: "",
			};
		},
	}
</script>

export default 用于到处模块, 允许将一个模块中的内容默认到处, 使得其他模块可以通过 import 语句导入这个默认导出的内容.

比如上面 import status from 'status.js', status.js 代码如下:

const status = {
        ……
	}
}

export default status 其他文件就可以 import 了

data() 函数用于定义组件的状态, vue在组件的初始化阶段会调用 data() 函数获取数据对象, 并进行响应式处理, 这是实现数据绑定和响应式更新的基础.

今天就看到这吧, 灵道不喜欢我们上班时候学习, 隔一会看一下在干什么.

安卓又出问题, 又是某个品牌某个人的手机出问题, 然后自己这边几个测试机都无法重现的问题.

做了安卓开发后, 听到安卓两个字都恶心.

### 回答1: 好的,我会用中文回答你的问题。 Uniapp 中的 web-view 组件可以用来在小程序中展示网页内容。在 web-view 中播放视频时,如果不希望视频进入全屏横屏模式,可以在网页端的视频标签中加入如下属性来禁止全屏横屏模式: ``` <video playsinline webkit-playsinline> ``` 这样在 web-view 中播放的视频就不会进入全屏横屏模式了。 希望这个回答能帮到你! ### 回答2: uniapp的web-view组件在播放视频时,全屏显示的方式并不是强制横屏模式。在uniapp中,web-view组件是基于WebView技术实现的,它会在应用内嵌一个浏览器窗口,使用此组件可以在页面中加载并显示指定URL的网页内容。 针对web-view组件在播放视频时全屏显示的方式,uniapp并没有提供直接的横屏模式的支持。但是我们可以通过一些额外的方法来实现视频的横屏全屏效果。 一种可能的解决方案是利用uniapp提供的原生插件功能。可以通过编写原生的插件代码,针对特定设备平台进行横屏模式的支持。通过调用原生插件提供的接口,在视频播放时切换为横屏模式,从而实现全屏显示。 另一种可行的方法是通过使用特定的CSS样式来实现全屏显示。在视频播放时,通过添加CSS样式,将web-view组件的宽度和高度设置为100%或者屏幕尺寸的宽度和高度。这样,视频内容将会占据整个屏幕空间,实现全屏显示效果。 需要注意的是,不同设备和浏览器对于web-view组件的支持和显示效果可能会有所差异。因此,在实际开发中,需要对不同设备和平台进行兼容性测试,确保视频全屏显示的效果能够符合预期。 总结起来,uniapp的web-view组件在视频全屏显示方面并不是强制横屏模式,但我们可以通过原生插件或者CSS样式的方式来实现横屏全屏效果。希望以上回答能够对你有所帮助! ### 回答3: 在UniApp中,使用web-view组件嵌入网页中的视频播放器,通常情况下点击全屏按钮会触发视频进入全屏模式,但该全屏模式并非横屏模式。 UniApp的web-view组件是基于系统的WebView实现的,而WebView在移动设备上的全屏模式表现是根据系统的设置和浏览器的支持而定的。在大多数移动浏览器中,进入全屏模式会让网页占据整个屏幕,但并不一定会自动旋转屏幕为横屏模式。 要实现web-view中的视频全屏横屏播放效果,可以考虑以下解决方案: 1. 监听web-view的全屏事件:在进入全屏时,使用uni.hideTabBar()隐藏底部的导航栏,调用uni.setScreenOrientation({orientation: 'landscape'})进行屏幕旋转为横屏模式,同时将web-view的width和height设置为100vw和100vh,使其占满整个屏幕。 2. 自定义视频播放器控件:通过uni.ui或uni.ui-palette自定义视频播放器,在全屏按钮点击时,通过uni.requestFullScreen接口请求全屏模式,并手动旋转屏幕为横屏模式。 需要注意的是,以上方案仅在移动设备上生效,PC端的Web平台对于全屏模式可能有不同的实现方式。另外,不同浏览器对于WebView中的全屏模式支持程度可能不同,建议在开发过程中进行测试和兼容性处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值