uniapp使用renderjs时,视图层和逻辑层之间互相通信

此文章是补充上一篇文章《uniapp app实现多个容器中菜单拖动交换和排序》 的知识点。

拖动排序需要操作dom用到了renderjs,肯定要发送请求将数据交给后端保存。而在renderjs 中不可以使用 uni 相关接口(如:uni.request),这时就需要视图层和逻辑层通讯。

如果有什么问题,可以私信我。如果你的公司在招人,需要前端工程师,也可以私信我。

<template>
    <!-- 逻辑层向视图层通讯 在view中自定义属性传值  chang去监听自定义属性  Sortable为renderjs的module -->
	<view class="work-container" :data="menuList" :change:data="Sortable.queryMenuList">
		<view class="work-title">工作台</view>
		<view class="work-menu-box">
			<view class="work-menu" v-for="(item,index) of menuList" :key="index">
				<view class="menu-title">
					{{item.meta.title}}
				</view>
				<view class="menu-grid-body">
					<uni-grid :className="'grid'+index" :data-id="index" :column="4" :showBorder="false"
						@change="(e)=>{changeGrid(e,index)}" :highlight="false">
						<uni-grid-item :index="i" v-for="(el,i) of item.children" :key="i" :data-item="JSON.stringify(el)">
							<view class="menu-grid-item-box">
								<view>
									<image class="icon" :src="el.meta.icon" mode="aspectFit"></image>
									<u-badge :show="el.meta.title == '待办任务'" absolute max="999" :value="total" :offset="[0,10]"></u-badge>
								</view>
								<text class="text u-line-1">{{el.meta.title}}</text>
							</view>
						</uni-grid-item>
					</uni-grid>
				</view>
			</view>
		</view>
		<u-toast ref="toast"></u-toast>
	</view>
</template>
<script>
export default{
    methods:{
        onMessage(data){
            console.log(data,'视图层向逻辑层发送的数据,注意是个对象');
        }
    }
}
</script>
<script module="Sortable" lang="renderjs">
export default{
    methods:{
        // 逻辑层向视图层主动传值  需要在view元素上定义方法
        queryMenuList(data){
            console.log('逻辑层向视图层主动传值')
        },
        // 逻辑层向视图层传值
        postMessage(){
            this.$ownerInstance.callMethod('onMessage',{data:'需要发送的数据'})
        }
    }
}
</script>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ღ张明宇࿐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值