微信小程序版小米商城的搭建流程详解!

很多初学微信小程序语法的同学,可能不知道如何布局和搭建一个项目,下面我将讲解初学者如何搭建项目和注意事项。

目录

一、 app.json的配置

二、引入vant

三、主页banner携带参数跳转

四、点击商品项跳转详情页


 

一、 app.json的配置

{"pages": ["pages/index/index","pages/classification/classification","pages/find/find","pages/shoppingcart/shoppingcart","pages/mine/mine"],"window": {"navigationBarTextStyle": "black","navigationBarTitleText": "心理健康服务平台","navigationBarBackgroundColor": "#ffffff","homeButton": true,"navigationStyle": "default","backgroundColor": "#999999","backgroundTextStyle": "dark","backgroundColorTop": "#f1f1f1"},"style": "v2","sitemapLocation": "sitemap.json","lazyCodeLoading": "requiredComponents","tabBar": {"selectedColor": "#fa6722","borderStyle": "white","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "assets/icons/home.png","selectedIconPath": "/assets/icons/home_active.png"},{"pagePath": "pages/classification/classification","text": "分类","iconPath": "assets/icons/category.png","selectedIconPath": "assets/icons/category_active.png"},{"pagePath": "pages/find/find","text": "发现","iconPath": "assets/icons/discovery.png","selectedIconPath": "assets/icons/discovery_active.png"},{"pagePath": "pages/shoppingcart/shoppingcart","text": "购物车","iconPath": "assets/icons/cart.png","selectedIconPath": "assets/icons/cart_active.png"},{"pagePath": "pages/mine/mine","text": "我的","iconPath": "assets/icons/mine.png","selectedIconPath": "assets/icons/mine_active.png"}]}
}

1. navigationBarTextStyle

  • 作用:设置导航栏文本的颜色。

  • 取值

    • "black":文本为黑色。
    • "white":文本为白色。

2. navigationBarTitleText

  • 作用:设置导航栏的标题文本。

3. navigationBarBackgroundColor

  • 作用:设置导航栏的背景颜色。

4. homeButton

  • 作用:是否显示系统的“主页”按钮。对于iOS设备,系统会自动显示一个主页按钮。

5. navigationStyle

  • 作用:设置导航栏的样式。

  • 取值

    • "default":使用默认样式。
    • "custom":自定义样式(通过 navigation 组件进行设置)。

6. backgroundColor

  • 作用:设置整个页面的背景颜色。

  • 取值:一个十六进制的颜色值。

    这里设置为 "#999999",即页面的背景颜色为浅灰色。

7. backgroundTextStyle

  • 作用:设置下拉刷新时的背景文本样式。

  • 取值

    • "light":文本为浅色。
    • "dark":文本为深色。

8. backgroundColorTop

  • 作用:设置下拉刷新时顶部背景的颜色。

  • 取值:一个十六进制的颜色值。

    这里设置为 "#f1f1f1",意味着下拉刷新时,顶部背景的颜色为浅灰色。

一个微信小程序的框架就完成了

二、引入vant

vant-weapp官方文档: https://vant.pro/vant-weapp/#/home

 1、安装

# 通过 npm 安装
npm i @vant/weapp -S --production

2、 修改 app.json

将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。

3、构建 npm 包

如果这一步失败了请:

npm init

 4、引入组件

 以 Button 组件为例,只需要在app.jsonindex.json中配置 Button 对应的路径即可。

// 通过 npm 安装
// app.json
"usingComponents": {"van-button": "@vant/weapp/button/index"
}

5、使用

<van-button type="primary">按钮</van-button>

三、主页banner携带参数跳转

1、渲染并绑定事件

点击banner图标会跳转到channel页面

<!-- banner -->
<view class="banner"><view class="item" wx:for="{{nav}}" wx:key="nav_img" wx:for-index="index"><image src="{{item.nav_img}}" bindtap="onImageTap" data-index="{{index}}" mode="" /><text>{{item.nav_title}}</text></view>
</view>

wx:for-index="index" 是小程序模板语法中的一种用法,允许在 wx:for 中获取当前循环项的索引。

bindtap="onImageTap" 表示绑定一个点击事件到 onImageTap 函数。

data-index="{{index}}" 将当前项的索引(index)传递到事件处理函数中。

2、接收参数

在channel页面的onLoad函数中:

  // 在channel页面的onLoad函数中onLoad: function (options) {// 获取传递过来的idconst index = options.index;this.setData({activeIndex: index})console.log('activeIndex:', this.data.activeIndex);this.getChannelData(index)}

打印结果如下: 

3、分情况渲染页面

手机和电视频道的页面结构:

电脑频道的页面结构:

 可以看出他们除了轮播区域,其他的部分结构不一样

于是我们可以通过this.data.activeIndex来区分页面,wx:if不同情况不同渲染

<!-- shoping list -->
<view class="shoplist"><!-- 手机电视 --><view class="shopping-item" wx:if="{{activeIndex<2}}" wx:for="{{channelData.goods_list}}" wx:key="id" bindtap="onItemClick" data-id="{{item.id}}"><image src="{{item.goods_cover}}" mode="aspectFill" /><text>{{item.header}}</text><text>{{item.description}}</text><view class="item-text"><text>{{item.meta}}</text><text>{{item.discount}}</text></view></view><!-- 电脑 --><view class="title" wx:if="{{activeIndex==2}}"><image src="/assets/icons/xin.jpg" mode="" /></view><view class="shopping-item-pc" wx:if="{{activeIndex==2}}" wx:for="{{channelData.goods_list}}" bindtap="onItemClick" data-id="{{item.id}}"><image src="{{item.goods_cover}}" mode="aspectFill" /><view class="pc-text"><text>{{item.header}}</text><text class="orange">{{item.meta}}</text></view><text class="description">{{item.description}}</text></view>
</view>

四、点击商品项跳转详情页

给每个shop-item添加了

bindtap="onItemClick" data-id="{{item.id}}"

并设置事件,携带了参数id过去:

 onItemClick: function (e) {const itemId = e.currentTarget.dataset.id;console.log('itemId', itemId);wx.navigateTo({url: `/pages/goodDetail/goodDetail?id=${itemId}`});},

在goodDetail接收参数:

onLoad: function (options) {const {id } = options; // 获取传递的 idthis.getItemDetail(id); // 根据 id 获取商品详情this.setData({currentImage: this.data.currentItem.intro_img});},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Neo4j启动时指定JDK版本

项目使用jdk1.8&#xff0c;同时需要安装neo4j5.15版本&#xff0c;使用jdk17. 1.mac或者liunx&#xff0c;找到neo4j目录bin的下neo4j文件 设置JAVA_HOME: 2.windows,找到bin下面的neo4j.bat文件 set "JAVA_HOME{JDK文件目录}" 重启后生效。

AI大模型驱动数据分析:利用自然语言实现数据查询与可视化(1)

在当今AI驱动的时代&#xff0c;数据分析已成为各行各业不可或缺的能力。然而&#xff0c;传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能&#xff0c;这对非技术背景的业务人员来说是一个不小的挑战。 想象一下&#xff0c;当数据中心的负责人打开手机时…

汽车总线协议分析-FlexRay总线

随着汽车智能化发展&#xff0c;汽车增加安全性和舒适体验的功能增多&#xff0c;用于实现这些功能的传感器、ECU的数量也在持续上升&#xff0c;严重阻碍了线控技术的发展。常用的CAN、LIN等总线由于缺少同步性、确定性和容错性不能满足汽车线控系统(X-by-Wire)的要求。因此&a…

第二篇:k8s工作流程

我们来看通过deployment部署pod的常规流程&#xff1a; kubectl向apiserver发送部署请求&#xff08;例如使用 kubectl create -f deployment.yml&#xff09;apiserver将 Deployment 持久化到etcd&#xff1b;etcd与apiserver进行一次http通信。controller manager通过watch a…

SPC三种判定准则的算法

1.连续6个点递增或递减 //传入数据列表 //返回连续X个及以上递增或递减的数组下标int n = array.Length; int X = X_in; List<int> regions_start = new List<int>(); List<int> regions_end = new List<int>();if(Open){for (int i = 0; i < n - (…

工业—使用Flink处理Kafka中的数据_ProduceRecord1

1 、 使用 Flink 消费 Kafka 中 ProduceRecord 主题的数据,统计在已经检验的产品中,各设备每 5 分钟 生产产品总数,将结果存入Redis 中, key 值为

python爬虫01

前言 之前的学习不是很努力就间断更新了&#xff0c;现在所有的内容是在具有python基础和web基础上继续更新的。接下来是爬虫和Flask框架共同更新&#xff0c;一起加油吧。 接v&#xff1a;13053025350&#xff08;毕设&#xff0c;小程序&#xff09; 看不懂python基础的可以…

第四篇:k8s 理解Service工作原理

什么是service&#xff1f; Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。 简单来说K8s提供了service对象来访问pod。我们在《k8s网络模型与集群通信》中也说过k8s集群中的每一个Pod&#xff08;最小调度单位&#xff09;都有自己的IP地址&#xff0c;都…

hhdb数据库介绍(10-43)

安全 密码安全管理 密码安全管理为用户提供了对计算节点数据库用户与存储节点的连接用户、备份用户的密码有效期监控提醒。到期后自动提示用户修改密码以提升系统的安全性。 数据库用户密码 &#xff08;一&#xff09;密码修改 用户可以在“安全->密码安全管理->数据…

基于DFA算法实现敏感词过滤

1、什么是DFA&#xff1f; DFA&#xff08;Deterministic Finite Automaton&#xff09;&#xff0c;即确定有穷自动机。其特征为&#xff1a;有一个有限状 态集合和一些从一个状态通向另一个状态的边&#xff0c;每条边上标记有一个符号&#xff0c;其中一个状态是 初态&#…

隐私安全大考,Facebook 如何应对?

随着数字时代的到来和全球互联网用户的快速增长&#xff0c;隐私安全问题已上升为网络世界的重要议题。社交媒体巨头Facebook因其庞大的用户群体和大量的数据处理活动&#xff0c;成为隐私问题的聚焦点。面对隐私安全的大考&#xff0c;Facebook采取了一系列策略来应对这些挑战…

基于深度学习的甲状腺结节影像自动化诊断系统(PyQt5界面+数据集+训练代码)

随着医学影像技术的发展&#xff0c;计算机辅助诊断在甲状腺结节的早期筛查中发挥着重要作用。甲状腺结节的良恶性鉴别对临床治疗具有重要意义&#xff0c;但传统的诊断方法依赖于医生的经验和影像学特征&#xff0c;存在一定的主观性和局限性。为了解决这一问题&#xff0c;本…

秒懂:使用js验证hash, content hash , chunk hash的区别

一、使用js验证hash, content hash , chunk hash的区别 1、计算一般的 Hash&#xff08;以简单字符串为例&#xff09; 使用crypto-js库来进行哈希计算&#xff0c;需提前引入npm install crypto-js库。 crypto-js&#xff1a; 是一个JavaScript加密算法库&#xff0c;用于实…

Telnet不安全?如何配置使用更安全的STelnet远程登录华为AR1000V路由器?

在上一篇文章中&#xff0c;我们介绍了如何配置一台全新的AR1000V&#xff0c;来实现通过Telnet远程登录设备&#xff08;如何配置使用Telnet远程登录华为AR1000V路由器&#xff1f;&#xff09;。其实&#xff0c;在之前的文章中&#xff0c;我们已经介绍过Telnet是一种不安全…

CV(2)-插值和卷积

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 看看年前可以学到哪。 频率&#xff1a; 灰度值变化程度的指标&#xff0c;是灰度再平面上的梯度幅值: 幅值&#xff1a; 是在一个周期内&#xff0c;交流电瞬时出现的最大绝对值&#xff0c;也是一个正弦波&#xff0c;波…

python数据分析之爬虫基础:解析

目录 1、xpath 1.1、xpath的安装以及lxml的安装 1.2、xpath的基本使用 1.3、xpath基本语法 2、JsonPath 2.1、jsonpath的安装 2.2、jsonpath的使用 2.3、jsonpath的基础语法 3、BeautifulSoup 3.1、bs4安装及创建 3.2、beautifulsoup的使用 3.3、beautifulsoup基本语…

1000 道最新高频 Java 面试题

金九银十已过&#xff0c;之前面试的也差不多了&#xff0c;小编在这里给大家整理了一套阿里面试官最喜欢问的问题或者出场率较高的面试题&#xff0c;助校招或者社招路上的你一臂之力&#xff01; 首先我们需要明白一个事实&#xff0c;招聘的一个很关键的因素是在给自己找未…

记录vite关于tailwindcss4.0-bate4出现margin[m-*]、padding[p-*]无法生效的问题。

环境如下&#xff1a; vite:5.4.10 tailwindcss: 4.0.0-beta.4 tailwindcss/vite: 4.0.0-beta.4 4.0默认的样式优先级比较低 如果使用了一些reset的css文件 那么很多样式会失效 例如&#xff1a;reset.css中 html, body, ul, li, h1, h2, h3, h4, h5, h6, dl, dt, dd, ol, i…

亚马逊云(AWS)使用root用户登录

最近在AWS新开了服务器&#xff08;EC2&#xff09;&#xff0c;用于学习&#xff0c;遇到一个问题就是默认是用ec2-user用户登录&#xff0c;也需要密钥对。 既然是学习用的服务器&#xff0c;还是想直接用root登录&#xff0c;下面开始修改&#xff1a; 操作系统是&#xff1…

Matlab 绘制雷达图像完全案例和官方教程(亲测)

首先上官方教程链接 polarplothttps://ww2.mathworks.cn/help/matlab/ref/polarplot.html 上实例 % 定义角度向量和径向向量 theta linspace(0, 2*pi, 5); r1 [1, 2, 1.5, 2.5, 1]; r2 [2, 1, 2.5, 1.5, 2];% 绘制两个雷达图 polarplot(theta, r1, r-, LineWidth, 2); hold …