最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 微信小程序学习第三天

    正文概述 掘金(周帅帅)   2021-08-07   590

    这是我参与8月更文挑战的第7天,活动详情查看:更文挑战

    数据相关

    修改数据

    Page构造函数,接收一个对象,对象有data属性,该属性是页面中的数据的存储地点。

    我们想要在页面运行一段时间之后,修改页面上的数据。因为是数据驱动,所以我们修改数据。

    修改方式: 该对象的某一个方法内 调用this.setData来修改数据

    this.setData(obj);

    obj.key: 要修改的层级路径

    obj.value: 层级路径对应的值

    这样就可以在修改数据的同时,修改页面上的显示内容

    demo:

    原始页面:

    <view>
    <text>{{title}}</text>
    </view>
    <view>
    <text>{{people.name}}</text>
    </view>
    

    原始数据:

    data: {
    title: "今天天气不错",
        people: {
            name: "王老五"
        }
    },
    

    渲染页面:

    微信小程序学习第三天

    数据丢失

    千万不要直接this.data.xxx = xxx;

    因为此时只是修改了数据,但没有触发修改页面内容的机制。导致页面与数据不一致。

    事件

    在微信小程序中,事件分两类,一类是冒泡事件,用bind-*来添加 一类是不冒泡事件, 用catch-*来添加

    冒泡事件

    绑定冒泡事件,通过bind-*添加, 如下:给id是child的组件添加了一个tap事件,事件函数的名称是child。要求必须在对应的js文件中,添加child事件函数

    wxml:

    <view id="father">
    父亲
    <view id="child" bindtap='child'>儿子</view>
    </view>
    

    js:

    Page({
    /*** 页面的初始数据*/
    data: {
    },
     /*** 生命周期函数--监听页面加载*/
     onLoad: function (options) {
    },
    child: function() {
    console.log("子元素的事件")
    }
    })
    

    点击触发:

    微信小程序学习第三天

    现在我们再去给父组件绑定一个同类型事件。

    微信小程序学习第三天

    不冒泡事件

    将绑定的方式从bind-修改为catch-即可

    微信小程序学习第三天

    自定义属性

    通过data-*给组件添加自定义属性。如何获取这些自定义属性呢?

    答:通过事件获取 在事件函数中有一个事件对象 从它身上可以得到对应的自定义属性。

    demo:

    微信小程序学习第三天

    如何获取? 答:通过e.currentTarget.dataset.xx

    事件对象

    查看:

    微信小程序学习第三天

    changedTouches: 手指的位置集合 里面的每一个成员代表一个手指

    成员:手指信息

         clientX: 手指在视口中的x位置

         clientY: 手指在视口中的y位置

         pageX: 手指在页面中的x位置

         pageY: 手指在页面中的y位置

    currentTarget: 绑定事件的组件对象 拥有各种属性

         id: 组件的id

         offsetLeft:距离父组件的left位置

         offsetTop: 距离付组件的top位置

         dataset:组件的自定义数据集合对象

    detail:手指的位置

    target:触发事件的组件 跟currentTarget结构一致

    timeStamp:时间戳 表示页面加载开始,距离事件触发一共过了多久 毫秒值单位

    touches:与changedTouches结构一致

    type:事件类型

    路由

    微信小程序中的路由,指的就是页面之间的跳转

    页面分类

    微信小程序的所有页面都被配置在app.json中的pages数组里。

    可是还有一部分是配置在tabBar的list中的。

    tabBar页面:在pages中也在tabBar的list中的页面,我们叫做tabBar页面。

    普通页面:在pages中,但不在tabBar中的页面,我们叫做普通页面。

    跳转方式分类

    • 第一种:通过组件跳转

    组件名称:navigator

    属性:

    url: 跳转的目标页面地址

    open-type: 打开方式 这个值要根据目标页面的类型决定

    如果目标页面是一个tabBar页面,那么要设置为 switchTab

    如果目标页面是一个普通页面,那么要设置为navigateTo

    • 通过代码跳转

    跳转方式

    通过组件跳转tabBar页面
    <navigator url="/pages/second/second" open-type="switchTab">跳转到第二个页面</navigator>
    
    通过组件跳转普通页面
    <navigator url="/pages/third/third" open-type="navigateTo">跳转到第三个页面</navigator>
    
    通过代码跳转tabBar页面
    wx.switchTab({
        url: '/pages/second/second'
    })
    
    通过代码跳转普通页面
    wx.navigateTo({
       url: '/pages/third/third'
    })
    
    补充

    以上是常规的跳转方式,都是打开目标页面,隐藏当前页面。还有一些方式,是会对当前页面进行操作的。

    重定向方式

    组件:

    重定向到三页

    代码:wx.redirectTo({url: "/pages/third/third"})

    后退方式:

    组件:<navigator open-type='navigateBack'>后退</navigator> 代码: wx.navigateBack()

    页面历史记录

    微信小程序中的历史记录是采用堆栈结构。

    堆栈:先进后出,后进先出

    队列:先进先出,后进后出

    情况1 跳转到tabBar页面

    当前页面:隐藏

    目标页面:加载、显示、渲染

    情况2 navigateTo到普通页面

    当前页面:隐藏

    目标页面:加载、显示、渲染

    情况3 redirectTo到普通页面

    当前页面:卸载

    目标页面:加载、显示、渲染

    情况4 navigateBack

    当前页面:卸载

    目标页面:显示


    起源地下载网 » 微信小程序学习第三天

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元