【微信小程序】页面跳转、组件自定义、获取页面参数值

简介: 单词中最好不要有大写字母,如果有大写字母,除单词第一个字母外,其余大写字母将被转换为小写。

0b4dfb40b94746ac94098cd03b8bf20a.gif


🏆今日学习目标:第十七期——页面跳转、组件自定义、获取页面参数值

😃创作者:颜颜yan_

✨个人主页:颜颜yan_的个人主页

⏰预计时间:25分钟

🎉专栏系列:我的第一个微信小程序


前言


哈喽大家好,本期是微信小程序专栏第十七期。本期主要内容是页面跳转、组件自定义、获取页面参数值。


每期内容是连载呢,建议大家可以看看往期内容,更好理解噢~


跳转到文章详情页面


新建文章详情页面。在app.json中新增页面路径,然后保存。


eefb0b358a0742cc95c57c5db6dbf13b.png


注册跳转事件。使用一个view组件将template包裹起来,将catchtap事件注册到view组件上。


10d215522a434529b96d7734c98e1b53.png


在post.js中编写事件的响应函数onTapToDetaill。


0565762dfa8b459c843ca3d71b0b0318.png


组件自定义


单篇文章绑定postId


要想实现点击文章就跳转到相应的文章详情页面,就需要给每个文章设置一个id,然后绑定这个id,如下,绑定postId:


5a1ac2eb33414866a9dfca7748953bce.png


我们可以看到,每篇文章的id号都被绑定在该文章的view容器上。


d27b851ceeb843b886a8f1d35d8c29f0.png


通过dataset获取组件自定义属性


通过event.currentTarget.dataset.postId获取当前文章的postId。


event事件对象是由MINA框架在调用onTapToDetail函数时传递的参数,其中,currentTarget代表事件绑定的当前组件。


dataset对象包含当前组件中所有属性名以data-开头的自定义属性值。


837cf061dccf4f88aec30f0fb8b8eaf9.png


组件自定义属性名的规则


  1. 必须以data-开头。
  2. 多个单词由连字符“-”连接。
  3. 单词中最好不要有大写字母,如果有大写字母,除单词第一个字母外,其余大写字母将被转换为小写。
  4. 在js中获取自定义属性值时,多个单词将被转化为驼峰命名。


获取页面参数值


在post-detail.js中获取postId,如下:


2692f849faaf40d2a61ad97aa3f7cc6a.png


读取文章详情数据


现在,我们已经在文章详情页面中拿到了文章的postId,接下来要根据这个postId去缓存数据库中读取文章详细数据。


DBPost.js


如下,我们在DBPost.js中增加代码。首先修改constructor构造函数,增加一个构造参数postId并将postId保存到this变量中。


然后增加一个方法getPostItemById用于获取指定id号的文章数据。


// ES6语法
class DBPost{
    constructor(postId){
        this.storageKeyName = 'postList';
        this.postId = postId;
    }
    // 获取指定id号的文章数据
    getPostItemById(){
        var postsData = this.getAllPostData();
        var len = postsData.length;
        for(var i=0;i<len;i++){
            if(postsData[i].postId == this.postId){
                return{
                    // 当前文章在缓存数据库数组中的序号
                    index:i,
                    data:postsData[i]
                }
            }
        }
    };


post-detail.js


先获取指定id号的文章数据,然后使用this.setData绑定数据。


   onLoad:function(options) {
        // 获取指定id号的文章数据
        var postId = options.id;
        this.dbPost = new DBPost(postId);
        this.postData = this.dbPost.getPostItemById().data;
        this.setData({
            post:this.postData
        })
    },


总结


以上就是今天的学习内容啦~

如果有兴趣的话可以订阅专栏,持续更新呢~

咱们下期再见~


aadaa9f7c5bb49cbb8967ff86729bb30.gif

目录
相关文章
|
3天前
|
移动开发 小程序
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
|
3天前
|
小程序 JavaScript
【微信小程序】之轮播图、swiper、swiper-item、banner组件使用
【微信小程序】之轮播图、swiper、swiper-item、banner组件使用
【微信小程序】之轮播图、swiper、swiper-item、banner组件使用
|
3天前
|
小程序 JavaScript
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
|
3天前
|
小程序 JavaScript
【微信小程序】之自定义三宫格一行展示row-grid(简单数据看板)
【微信小程序】之自定义三宫格一行展示row-grid(简单数据看板)
|
1天前
|
数据采集 小程序 数据挖掘
Matplotlib库模板学习,2024年最新微信小程序页面跳转方法总结
Matplotlib库模板学习,2024年最新微信小程序页面跳转方法总结
|
3天前
|
小程序
小程序和页面生命周期详解
小程序和页面生命周期详解
15 0
|
3天前
|
小程序
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
77 0
|
3天前
|
小程序 程序员
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
27 0
|
3天前
|
小程序 JavaScript
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
|
3天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。

热门文章

最新文章