UNIAPP学习点滴记录

一、事件处理

1)@tap和@click的区别

在HbuilderX中,两者都是点击时触发事件;不同的是:

1.@click是组件被点击时触发,会有约300ms的延迟(内置处理优化了)

2.@tap是手指触摸离开时触发,没有300ms的延迟,但是会员事件穿透;

3.编译到小程序端,@click会被转成@tap

4.@click,@tap 事件,在浏览器上,@tap 事件会覆盖@click;在手机端的时候,2个事件都存在,这2个取其中一个就可以

事件穿透的理解:

@tab可以阻止事件冒泡,@click不可以

用@事件监听 DOM 事件

2)@longtap,@longpress

@longtap,@longpress 长期按住事件 ,在浏览器上,longtap 事件会覆盖@longpress;在手机端的时候,2个事件都存在,但是会报警告,longtap已经不在使用。所以推荐使用longpress

3) touchcancel

touchcancel 比如手指在按钮上触摸的时候,被打断(来电提示,弹出)的事件

4)linechange

linechange 输入行数变化时调用

二、页面跳转方式

1)组件包裹

例子:

       <navigator url="/pages/newsDetail/newsDetail">
        <view class="uni-media-list" @tap="gotoDetail(v)">
          <image class="uni-media-list-logo" :src="v.author_avatar" mode=""></image>
          <view class="uni-media-list-body">
            <view class="uni-media-list-text-top uni-ellipsis">({{i+1}}) {{v.title}}</view>
            <view class="uni-media-list-text-bottom">{{v.created_at}}</view>
          </view>
        </view>
       </navigator>

该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。
navigator | uni-app官网https://uniapp.dcloud.io/component/navigator.html#navigator

2)api事件跳转

uni.navigateTo(OBJECT) | uni-app官网https://uniapp.dcloud.io/api/router.html#navigateto

三、事件传参

第一种:

<template>
  <view class="content">
    <view class="uni-list">
      <view class="uni-list-cell" hover-class="uni-list-cell-hover" v-for="(v,i) in newsList" :key="v.id">
        <!-- <navigator url="/pages/newsDetail/newsDetail"> -->
        <view class="uni-media-list" @tap="gotoDetail(v)">
          <image class="uni-media-list-logo" :src="v.author_avatar" mode=""></image>
          <view class="uni-media-list-body">
            <view class="uni-media-list-text-top uni-ellipsis">({{i+1}}) {{v.title}}</view>
            <view class="uni-media-list-text-bottom">{{v.created_at}}</view>
          </view>
        </view>
        <!-- </navigator> -->
      </view>
    </view>
  </view>
</template>
      // 跳转详情页
      gotoDetail(data) {
        console.log(data);
        uni.navigateTo({
          url: '/pages/newsDetail/newsDetail?id=' + data.id,
          success: res => {
            console.log(res, '成功');
          },
          fail: (e) => {
            console.log(e, '失败');
          },
          complete: (e) => {
            console.log(e, '完成');
          }
        });
      }

第二种:

<template>
  <view class="content">
    <view class="uni-list">
      <view class="uni-list-cell" hover-class="uni-list-cell-hover" v-for="(v,i) in newsList" :key="v.id">
        <!-- <navigator url="/pages/newsDetail/newsDetail"> -->
        <view class="uni-media-list" @tap="gotoDetail" :data-newsid="v.post_id">
          <image class="uni-media-list-logo" :src="v.author_avatar" mode=""></image>
          <view class="uni-media-list-body">
            <view class="uni-media-list-text-top uni-ellipsis">({{i+1}}) {{v.title}}</view>
            <view class="uni-media-list-text-bottom">{{v.created_at}}</view>
          </view>
        </view>
        <!-- </navigator> -->
      </view>
    </view>
  </view>
</template>
// 跳转详情页
      gotoDetail(e) {
        const newsid = e.currentTarget.dataset.newsid
        uni.navigateTo({
          url: '/pages/newsDetail/newsDetail?newsid=' + newsid,
          success: res => {
            console.log(res, '成功');
          },
          fail: (e) => {
            console.log(e, '失败');
          },
          complete: (e) => {
            console.log(e, '完成');
          }
        });
      }

四、manifest.json配置

1)HBuildX创建的应用默认是沉浸式样式,即

app-plus" : {
  "statusbar" : {
      "immersed" : true
   }
}

在手机上会出现自己写的页面与手机顶部状态栏重叠,如图

把值改为false,则可以解决这个问题

app-plus" : {
  "statusbar" : {
      "immersed" : false
   }
}

 

参考文章

https://blog.csdn.net/qq_59076775/article/details/123328920

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ActiViz是一个基于C#的开源数据可视化库,它提供了一系列用于创建和呈现2D和3D图形的功能。如果你想学习ActiViz,以下是一些学习点滴: 1. 理解ActiViz的基本概念:开始学习之前,了解ActiViz的基本概念是很重要的。了解ActiViz的工作原理、主要组件和使用方式,可以帮助你更好地理解和应用它。 2. 安装和配置ActiViz:在开始使用ActiViz之前,你需要将其安装到你的开发环境中。阅读官方文档或教程,按照指示进行安装和配置。 3. 学习ActiViz的API:ActiViz提供了丰富的API,用于创建和操作图形对象。学习这些API的用法和功能,可以帮助你更好地使用ActiViz来实现你的需求。 4. 创建基本图形对象:开始学习ActiViz时,从创建一些基本的图形对象开始是一个不错的选择。尝试创建点、线、多边形等基本图形对象,并学习如何对它们进行操作和渲染。 5. 了解数据可视化技术:ActiViz最常用的用途之一是数据可视化。学习如何使用ActiViz来可视化不同类型的数据,如二维数据、三维数据、图像数据等,可以帮助你更好地应用ActiViz来分析和展示数据。 6. 阅读官方文档和示例代码:ActiViz有详细的官方文档和示例代码,可以帮助你更深入地了解和使用ActiViz。阅读官方文档和运行示例代码,可以帮助你学习一些高级功能和技巧。 7. 参与开源社区:ActiViz是一个开源项目,有一个活跃的社区。参与到ActiViz的开发和讨论中,可以帮助你与其他开发者交流和学习,同时也可以为ActiViz的发展做出贡献。 希望这些学习点滴对你有帮助!祝你学***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值