热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小白进军小程序开发解说之标梵互动信息

本次项目主要用于学习,其后台数据并非我自己的,而是借助别人的后台数据,在微信小程序中渲染界面。就像是开发客户端一样,其商品信

本次项目主要用于学习,其后台数据并非我自己的,而是借助别人的后台数据,在微信小程序中渲染界面。就像是开发客户端一样, 其商品信息及数据是通过web 后台管理系统来运维数据。 通过后台系统提供的API接口文档请求用户数据。

目前主要完成的页面有:首页,购物车,商品详情,商品搜索功能。
接下来可以分析一下 页面组成结构。
首先整个界面可以分成四部分,分别是
小程序标题栏
搜索栏
菜单导航
底部tabBar列表
源代码如下:

{"pages": [ /"pages/index/index","pages/category/index","pages/cart/index","pages/user/index","pages/goods_list/index","pages/goods_detail/index","pages/collect/index","pages/order/index","pages/search/index","pages/feedback/index","pages/login/index","pages/auth/index","pages/pay/index"],"entryPagePath": "pages/goods_list/index","window": {"backgroundTextStyle": "dark","navigationBarBackgroundColor": "#df25aa","navigationBarTitleText": "博讯商城小程序","navigationBarTextStyle": "black","backgroundColor": "#ff00dd","enablePullDownRefresh": true},"tabBar": {"color": "#999","selectedColor": "#ff2d4a","backgroundColor": "#fafafa","position": "bottom","borderStyle": "black","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "icons/home.png","selectedIconPath": "icons/home-o.png"},{"pagePath": "pages/category/index","text": "分类","iconPath": "icons/category.png","selectedIconPath": "icons/category-o.png"},{"pagePath": "pages/cart/index","text": "购物车","iconPath": "icons/cart_20190818_110336.png","selectedIconPath": "icons/cart-o.png"},{"pagePath": "pages/user/index","text": "我的","iconPath": "icons/my.png","selectedIconPath": "icons/my-o.png"}]},"style": "v2","sitemapLocation": "sitemap.json"
}

接下来我们就来讲一下标签也的实现:
在这里,其实我们可以看到有四个标签项,但只有一个内容面板, 当点击标签选项时,选中选项列表,同时更换内容面板的主题内容即可。而这个实现其实就类似于vue一样,自定义一个标签页组件。
1:接下来看一下view视图页面结构的源码实现:

{{tabs}}"wx:key="id"data-index="{{index}}"class="title_item {{item.isActive ? 'active':''}}">{{item.title}}内容面板占位符

从这里看到的是通过容器面板来封装成组件,其子元素分两部分title和content内容面板
title中遍历标签列表用于显示以及定义对应的事件处理
2: 组件的数据处理与回调
Component(
{/*** 组件的属性列表*/properties: {tabs:{type: Array,value: []}},/*** 组件的初始数据*/data: {},/*** 组件的方法列表*/methods: {handleClick(e){const {index} =e.currentTarget.datasetthis.triggerEvent("itemChange",{index})}}
})

如何引用组件

1:在页面xxx.json中引入组件
{"usingComponents": {"Search":"../../Components/Search/Search","Tab":"../../Components/Tab/Tab"},"enablePullDownRefresh": true,"navigationBarTitleText": "商品列表"
}
2:在页面中使用组件视图
{{tabs}}" binditemChange="handleItemChange">{{tabs[0].isActive}}">{{goodsList}}"wx:key="goods_id" hover-class="navigator-hover" url="/pages/goods_detail/index?goods_id={{item.goods_id}}">{{item.goods_big_logo ==''?'../../icons/cart-o.png':item.goods_big_logo}}" mode="widthFix" />{{item.goods_name}}¥ {{item.goods_price}}销量 {{item.goods_number}}访问量
{{item.hot_number}}0

3:在xxx.js处理事件回调后的数据
data: {tabs:[{id: 0 ,title: "尺寸",isActive: true},{id: 1 ,title: "价格",isActive: false},{id: 2 ,title: "评价",isActive: false},{id: 3 ,title: "销量",isActive: false}],goodsList:[]},handleItemChange(e){console.log(e)const {index} =e.detaillet { tabs } = this.datatabs.forEach((v,i)=>v.isActive = ( i === index) ? true:false)this.setData({tabs})}}

编辑:标梵互动(https://weibo.com/Biaofun)


推荐阅读
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
author-avatar
asgvbsd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有