首页 > 其他分享 >uniapp专题学习(四)

uniapp专题学习(四)

时间:2023-06-01 18:00:31浏览次数:48  
标签:uniapp 示例 default res 专题学习 点击 组件 uni

前言

uniapp专题学习(三)中学习到的知识点有计算属性computed、计算属性computed和方法methods的区别、vue语法的自定义组件、pops的父子组件参数传递。

native修饰符

如果想在自定义组件执行原生的事件就需要用native来修饰

假设我已经定义好了自定义组件,我想触发click事件,就需要用到native修饰符:

<template>
	<view>
        <mycomponent :title="title" @click.native="onclick"></mycomponent>
    </view>
</template>
<script>
	export default {
		data() {
			return {
			};
		},
		methods:{
			onclick(){
				console.log("xxx")
			}
		}
	}
</script>

父子间传值小案例

需求:封装一个弹窗的组件,点击打开按钮打开弹窗,点击关闭按钮关闭弹窗

子组件:

<template>
	<view>
		<view>---弹出框样式---</view>
		<view class="xbox" :style="{height:state?'300rpx':'0'}"></view>
		<button size="mini" @click="onclose">关闭</button>
	</view>
</template>

<script>
	export default {
		name:"mypop",
		props:{
			state:{
				type:Boolean,
				default:false
			}
		},
		data() {
			return {
				
			};
		},
		methods:{
			onclose(){
				this.$emit("close",false)
			}
		}
		
	}
</script>

<style lang="scss">
.xbox{
	width: 300rpx;
	height: 300rpx;
	background-color: yellowgreen;
}

</style>

父组件:

<template>
	<view>
        <button @click="state = true">开启</button>
		<mypop :state="state" @close="onclose"></mypop>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				state:false
			};
		},
		methods:{
			onclose(e){
				this.state = e
			}
		}
	}
</script>

sync修饰符与update响应式写法

根据以上的案例有一个简化的写法,就是updatesync修饰符的响应式写法
子组件:

<template>
	<view>
		<view>---弹出框样式---</view>
		<view class="xbox" :style="{height:state?'300rpx':'0'}"></view>
		<button size="mini" @click="onclose">关闭</button>
	</view>
</template>

<script>
	export default {
		name:"mypop",
		props:{
			state:{
				type:Boolean,
				default:false
			}
		},
		data() {
			return {
				
			};
		},
		methods:{
			onclose(){
				this.$emit("update:state",false)
			}
		}
		
	}
</script>

<style lang="scss">
.xbox{
	width: 300rpx;
	height: 300rpx;
	background-color: yellowgreen;
}

</style>

父组件:

<template>
	<view>
        <button @click="state = true">开启</button>
		<mypop :state.sync="state"></mypop>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				state:false
			};
		}
	}
</script>

vue的生命周期

img

uniapp之交互反馈

uni.showToast(OBJECT)

显示消息提示框。

详情请点击uni.showToast参数说明

示例

uni.showToast({
	title: '标题',
	duration: 2000
});

uni.hideToast()

隐藏消息提示框。

示例

uni.hideToast();

uni.showLoading(OBJECT)

显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。

详情请点击uni.showLoading参数说明

示例

uni.showLoading({
	title: '加载中'
});

uni.hideLoading()

隐藏 loading 提示框。

示例

uni.showLoading({
	title: '加载中'
});

setTimeout(function () {
	uni.hideLoading();
}, 2000);

uni.showModal(OBJECT)

显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个API整合了 html 中:alert、confirm。

详情请点击showModal参数说明

示例

uni.showModal({
	title: '提示',
	content: '这是一个模态弹窗',
	success: function (res) {
		if (res.confirm) {
			console.log('用户点击确定');
		} else if (res.cancel) {
			console.log('用户点击取消');
		}
	}
});

uni.showActionSheet(OBJECT)

从底部向上弹出操作菜单

详情请点击showActionSheet参数说明

示例

uni.showActionSheet({
	itemList: ['A', 'B', 'C'],
	success: function (res) {
		console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
	},
	fail: function (res) {
		console.log(res.errMsg);
	}
});

uni.setNavigationBarTitle(OBJECT)

动态设置当前页面的标题。

详情请点击setNavigationBarTitle参数说明

示例

uni.setNavigationBarTitle({
	title:"js设置的title"
})

uni.setNavigationBarColor(OBJECT)

设置页面导航条颜色。如果需要进入页面就设置颜色,请延迟执行,防止被框架内设置颜色逻辑覆盖

详情请点击setNavigationBarColor参数说明

示例

uni.setNavigationBarColor({
    frontColor: '#ffffff',
    backgroundColor: '#ff0000',
    animation: {
        duration: 400,
        timingFunc: 'easeIn'
    }
})

标签:uniapp,示例,default,res,专题学习,点击,组件,uni
From: https://www.cnblogs.com/codexj/p/17449799.html

相关文章

  • uniapp+vue3+ts 使用pinia报错
    "hasInjectionContext"isnotexportedby"node_modules/vue-demi/lib/index.mjs",importedby"node_modules/pinia/dist/pinia.mjs".11:36:19.397at../node_modules/pinia/dist/pinia.mjs:6:9 解决方法:把pinia降级 先删除pinianpmunipin......
  • uniapp uni-number-box组件 步长为1,还能输入小数思路分享
    正常情况,输入了步长为1,是无法在输入小数的。需求是要能输入一位小数,但如果直接步长设为0.1,又不能按1这样递增,输入数量上用起来肯定很麻烦。于是我就想了一个折中方法,步长设为:1.01,然后值改变的时候,change事件里,四舍五入,保留一位小数,这样就能实现点击输入框左右的加减,页面显示的......
  • uniapp专题学习(三)
    前言在uniapp专题学习(二)中学习到的知识点有viedo组件、form表单组件、navigator路由跳转以及page.json中的tabBar配置。vue语法之计算属性computed每一个计算属性都包含一个getter和一个setter,默认是利用getter来读取。所有getter和setter的this上下文自动地绑定为......
  • uniapp onShareAppMessage里面请求后调分享(微信小程序)
    onShareAppMessage(){constpromise=newPromise(resolve=>{request({api:'请求名',method:'POST',data:{"data":{}}}).then(res=>{resolve({......
  • uniapp 常用知识点
    1、原生导航栏(顶部)动态修改titleuni.setNavigationBarTitle({title:"賬號名稱"})2、原生导航栏(顶部)左边箭头默认是返回上一级,监听动态返回指定页面与data()同级//监听原生导航栏的发回按钮onBackPress(options){if(options.from==='navigateBack'){r......
  • uniapp报错集合
    1、swiper组件明明按照方法写了,却不起效果?排查发现,swiper组件宽度为0,设置swiper宽度即可2、报错Cannotreadproperty'forceUpdate'ofundefined原因为未配置小程序appid3、引用组件,明明目录里面有组件却报找不到?排查发现,引用地址正常,经过编译后在小程序中锁定的地址不正常......
  • uniapp专题学习(二)
    前言书接上回,我们学习了uniapp的基本概念、用处、vue语法在uniapp中的使用、page.json的全局配置和局部配置以及组件的使用。本节我们将继续学习uniapp组件。uniapp组件学习viedo视频播放组件。常用属性:src、autoplay、loop、muted,详情请查看viedo组件案例代码:<template> ......
  • uniapp条件编译文件夹,静态资源
    用于处理条件编译一些文件夹,防止小程序包过大,因为不同平台有些文件可能不需要 1、引入删除的npm包用于删除不需要的静态文件npminstallcopy-webpack-plugin--save-dev  2、创建build.js配置文件,叫啥都行,为了引入直接写vue.config.js里面也可以/***打包配置文件......
  • uniapp中执行完一个方法在执行另一个
    functionrequest(url,data={},method="GET"){ returnnewPromise(function(resolve,reject){   uni.request({     url:url,     data:data,     method:method,     header:{       'Content-Type':'application/json;cha......
  • uniapp专题学习(一)
    为什么要学习uniapp一套代码可以打包到不同的应用平台,一套代码,多端运行;方便入手,就是使用vue语法写小程序,如果有vue和小程序经验的话,甚至直接可以看文档;丰富的生态环境,官方及第三方插件较为丰富,论坛活跃度高。什么是uniappuni-app是一个使用Vue.js开发所有前端应用的框......