微信小程序开发(持续更新)

1.项目基本配置

(1)文件

1)主体文件

主体文件:够作用于整个小程序,影响到小程序的每个页面,主体文件必须放到项目的根目录下

由三部分组成:

  • .appjs:小程序入口文件
  • .app.json:小程序的全局配置文件
  • .app.wxss:小程序的全局样式
2)页面文件

页面文件:是每个页面所需的文件,小程序页面文件都存放在 pages 目录下,一个页面一个文件夹

通常由四个文件组成,每个文件只对当前页面有效:

  • .js:页面逻辑
  • .wxml:页面结构
  • .wxss:页面样式
  • ..json:小页面配置

(2)渲染模式

在app.json中去掉render、rendererOptions、componentFramework,改变渲染模式

(3)新建页面方式

①在pages文件夹添加页面文件夹,再添加对应名称page

②在app.json中的pages直接添加

(4)配置文件

1)JSON

在小程序中,JSON扮演配置项角色

  • app.json:小程序全局配置文件,用于配置小程序的一些全局属性和页面路由
  • 页面.json:小程序页面配置文件,也称局部配置文件,用于配置当前页面的窗口样式、页面标题
  • project.confg.json:小程序项目的配置文件,用于保存项目的一些配置信息和开发者的个人设置
  • sitemap.json:配置小程序及其页面是否允许被微信索引,提高小程序在搜索引擎搜索到的概率
2)window 字段

用于设置小程序的状态栏、导航条、标题、窗口背景色。

  "window": {

    "navigationBarTitleText": "微信小程序" ,

    "navigationBarBackgroundColor": "#f3514f",

    "enablePullDownRefresh": true,

    "backgroundColor": "#efefef",

    "backgroundTextStyle":"light"

  },

3)tabBar 字段

定义小程序顶部、底部 tab 栏,用以实现页面之间的快速切换。

  "tabBar": {

    "selectedColor": "#f3514f",

    "color": "#666",

    "backgroundColor": "#efefef",

    "borderStyle":"white",

    "list": [

      {

        "text": "首页",

        "pagePath": "pages/index/index",

        "iconPath": "/assets/tabbar/index.png",

        "selectedIconPath": "/assets/tabbar/index-active.png"

      },

      {

        "text": "分类",

        "pagePath": "pages/cate/cate",

        "iconPath": "/assets/tabbar/cate.png",

        "selectedIconPath": "/assets/tabbar/cate-active.png"      

      },

      {

        "text": "购物车",

        "pagePath": "pages/cart/cart",

        "iconPath": "/assets/tabbar/cart.png",

        "selectedIconPath": "/assets/tabbar/cart-active.png"      

      },

      {

        "text": "我的",

        "pagePath": "pages/profile/profile",

        "iconPath": "/assets/tabbar/profile.png",

        "selectedIconPath": "/assets/tabbar/profile-active.png"      

      }

    ]

  },

4)页面配置

也称局部配置,每一个小程序页面也可以使用自己的.json 文件来对本页面的窗口表现进行配置

5)项目配置文件

project.config.json:项目配置文件,常用来进行配置公共的配置

project.private.config.json:项目私有的配置,常用来配置个人的配置

6)集成Sass语言

在project.config.json中的setting添加配置

    "useCompilerPlugins":[

      "sass"

    ],

将.wxss文件改为.scss文件即可添加样式

7)sitemap.json文件
  • 没有 sitemap.json 则默认所有页面都能被索引
  • ("action": "allow","page":"*“}是优先级最低的默认规则,未显式指明"disalow" 的都默认被索引

    "rules": [{

    "action": "allow",

    "page": "pages/index/index"

    }]

2.样式与组件 

(1)尺寸单位rpx

小程序规定任何手机型号屏幕宽度都是750rpx

(2)全局样式和局部样式

全局样式:指在 app.wxss 中定义的样式规则,作用于每一个页面,例如:设置字号、背景色、宽高等全局样式

局部样式:指在 page.wxss 中定义的样式规则,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。

(3)组件案例

1)view

小程序的盒子,相当于div

2)轮播图

在小程序中,提供了 swiper和 swiper-item 组件实现轮播图

swiper:滑块视图容器,其中只能放置 swiper-item 组件

swiper样式

autoplay - 自动播放

interval - 播放时间

indicator-dots - 添加选中小点

indicator-color - 小点的颜色

indicator-active-color - 小点选中颜色

circular - 顺序播放

<!-- 轮播图区域 -->
<view class="swiper">
<swiper 
autoplay 
interval="1500" 
indicator-dots 
indicator-color="#fff"
indicator-active-color="#f3514f"
circular
><swiper-item><image src="../../assets/banner/banner-1.png" mode="" show-menu-by-longpress/></swiper-item><swiper-item><image src="../../assets/banner/banner-2.png" mode="" show-menu-by-longpress/></swiper-item><swiper-item><image src="../../assets/banner/banner-3.png" mode="" show-menu-by-longpress/></swiper-item>
</swiper>
</view>
.swiper{swiper{height: 360rpx;swiper-item{image{width: 100%;height: 100%;}}}
}
3)image
  • src 属性:图片资源地址
  • mode:图片裁剪、缩放的模式
  • show.menu.by.longpress:长按图片显示菜单
  • lazy-load:图片懒加载
4)text
  • user-select:文本是否可选,用于长按选择文本
  • space:显示连续空格
  • text只能嵌套text
5)navigation

1.ur:当前小程序内的跳转链接
2.open-type:跳转方式

  • navigate:保留当前页面,跳转到应用内的某个页面。但是不能跳到tabbar
  • redirect:关闭当前页面,跳转到应用内的某个页面。但不能跳转到tabbar页面
  • switchTab:跳转到tabBar页面,并关闭其他所有非labBar页面
  • reLaunch:关闭所有页面,打开到应用内的某个页面
  • navigaleBack:关闭当前页面,返回上一页面或多级页面
6)scroll-view

两个属性:

  • scroll-x:允许横向滚动
  • scroll-y:允许纵向滚动
7)背景图的使用

background-image

小程序背景图不能使用本地路径,需要用网络图片替换本地路径

3.事件绑定与事件对象

(1)事件绑定

bindtap="事件名"

(2)事件分类及阻止事件冒泡

冒泡事件:当一个组件的事件被触发后,该事件会向父节点传递

非冒泡事件:当一个组件的事件被触发后,该事件不会向父节点传递

使用bind会触发事件冒泡,想阻止可以使用catch

(3)事件传参

1)data传参

在组件上 通过 data-"的方式 定义需要传递的数据,其中*是自定义的属:

例如:<view data-id=“100"bindtap="handler”'/

currentTarget事件绑定者

target事件触发者

2)mark传参

在组件上使用 mark:自定义属性 的方式将数据传递给事件处理函数,例如:<view mark:id=“100"bindtap="handler”/>

4.wxml语法

1.声明和绑定数据

再Page()方法的data对象进行声明定义

应用时采用{{}}方式

2.setDate()修改数据

    this.setData({age:this.data.age+1})

添加数据:

const userinfo = {...this.data.userinfo,name:'yld',age:18}const userinfo = Object.assign(this.data.userinfo,{name:'yld'},{age:18})

删除数据:

delete this.data.userInfo.agethis.setDate({userinfo:this.data.inInfo
)}

3.双向数据绑定

在属性前添加model即可

4.列表渲染

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

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

相关文章

linux中使用gdb调试c++的dump文件

1 查看系统是否开启dump生成 0表示没开启 ulimit -c 但是这个只是针对当前这个连接&#xff0c;如果想要永久修改可以修改配置文件&#xff1a;vim /etc/profile&#xff0c;然后添加上面的命令ulimit - c unlimited.然后执行source /etc/profile或者重启使刚刚的配置可以…

数控六面钻选购指南:如何挑选一款高效、精准的加工利器?

在木工家具、门窗制造等行业中&#xff0c;数控六面钻凭借其高效、精准的特点&#xff0c;逐渐成为现代生产线上的必备设备。然而&#xff0c;市场上的数控六面钻品牌众多&#xff0c;性能各异&#xff0c;如何选购一款适合自己的设备呢&#xff1f;本文将为您提供一份实用的选…

【稀疏三维重建】pixelSplat:仅需两张图,重建3D Gaussian Splats

文章目录 一.摘要二、相关工作 , 背景(gs)三、基于图像的三维高斯预测3.1 双视图图像编码器&#xff08;解决尺度模糊性&#xff09;3.2 &#xff08;像素对齐的&#xff09;高斯参数预测 四、实验效果 论文&#xff1a;《pixelSplat: 3D Gaussian Splats from Image Pairs for…

动态规划之买卖股票大集合

目录 引言 1.只能进行一次买卖股票&#xff08;最多只能买一股股票&#xff09; 2.可以进行多次股票买卖&#xff0c;且没有手续费&#xff08;最多只能买一股股票&#xff09; 3.可以进行多次股票买卖&#xff0c;但是有冷冻期&#xff0c;无手续费&#xff08;最多只能买一…

常用压力、流量单位换算表

一、压力为单位面积所承受的力 压力&#xff1a;绝对压力 、表压力 、大气压力。相互关系&#xff1a;绝对压力表压力大气压力 绝对压力:当压力表示与完全真空的差。测量处的实际压力。 表压力:当表示其气体数值与该地域大气压力的差值。 大气压力&#xff1a;由大气重量所…

基于C++11实现的手写线程池

在实际的项目中&#xff0c;使用线程池是非常广泛的&#xff0c;所以最近学习了线程池的开发&#xff0c;在此做一个总结。 源码&#xff1a;https://github.com/Cheeron955/Handwriting-threadpool-based-on-C-17 项目介绍 项目分为两个部分&#xff0c;在初版的时候&#x…

让EXCEL VBA支持鼠标滚轮,vb6 IDE鼠标滚轮插件原理

vb6 IDE鼠标滚轮插件怎么运行的(适用于VBA) 使用 Spy&#xff0c;我发现代码窗口正在获取 WM_MOUSEWHEEL 事件&#xff0c;但没有触发 WM_VSCROLL 消息。因此&#xff0c;我编写了一个简单的消息钩子&#xff0c;当它捕获鼠标滚轮事件时触发滚动事件。 我从 Spy 得知代码窗口的…

SQL数据库多层嵌套 json转sql建表语句,SQL数据库里数组里对象数据怎么创建

1. uniapp sqlite 一个数组包含对象嵌套对象通过主外键方式插入数据库&#xff1a; // 假设有一个对象数组&#xff0c;对象中包含嵌套对象 const objectsArray [{parentObject: {id: 1,name: Parent 1,// 其他父对象属性},childObject: {id: 11,parentId: 1,name: Child 1 o…

截图工具分享(Snipaste、FastStone Capture)

目录 一、背景二、Snipaste 截图工具三、FastStone Capture 截图工具 一、背景 在我们日常的学习、工作中&#xff0c;经常会需要使用到各种各样的截图场景&#xff0c;甚至有部分同学还不知道仅仅通过截图的运用就可以大大提升自己的学习效率和工作效率。在这篇文章中&#xf…

速盾:cdn如何解析?

CDN是内容分发网络&#xff08;Content Delivery Network&#xff09;的缩写&#xff0c;它是一种通过在全球范围内分布节点服务器来提供高性能、高可用性的网络服务的技术。CDN的主要功能是通过将内容分发到离用户更近的服务器节点&#xff0c;从而加速用户对网站、应用程序、…

[蓝桥杯 2020 省 AB2] 子串分值

一.题目 题目描述 对于一个字符串 S&#xff0c;我们定义 S 的分值 f(S) 为 S 中恰好出现一次的字符个数。 例如 f(“aba”)1&#xff0c;f(“abc”)3, f(“aaa”) 0。 现在给定一个字符串 S[0…n−1]&#xff08;长度为 n&#xff09;&#xff0c;请你计算对于所有 S 的非…

嵌入式学习——3——域套接字UNIX

1、域套接字UNIX 1、域套接字是最原始的套接字通信方式&#xff0c;是完成同一主机之间多个进程间通信 2、由于不需要跨主机进行通信了&#xff0c;那么就无需使用ip地址和端口号了 3、通信本质&#xff1a;依然使用的是内核空间 4、域套接字的通信介质为套接字文件 bcd-lsp 5、…

低代码技术:数字经济时代的崛起与变革

随着数字经济时代的到来&#xff0c;低代码技术作为一种创新性工具正迅速崛起。本文将介绍低代码技术的定义和特点&#xff0c;并探讨其在数字经济中的重要性和应用。同时&#xff0c;我们将讨论低代码技术对传统软件开发方式的改变以及其带来的商业与创新机会。 引言 随着数字…

如何解决链游中可能出现的延迟或网络拥堵问题?

随着区块链技术的不断发展和普及&#xff0c;链游&#xff08;基于区块链的游戏&#xff09;作为新兴的娱乐形式&#xff0c;正逐渐走进大众的视野。然而&#xff0c;与传统游戏相比&#xff0c;链游在运行过程中可能会遇到一些特有的问题&#xff0c;其中最为突出的就是延迟和…

GB-T 37973-2019 信息安全技术 大数据安全管理指南

编写背景 随着大数据技术的快速发展和广泛应用&#xff0c;数据安全问题日益凸显。大数据安全管理指南的编写旨在指导和规范大数据在采集、存储、处理、传输、共享和销毁等环节的安全管理工作&#xff0c;以确保数据的完整性、可用性和 保密性&#xff0c;同时促进大数据的健康…

Oracle中clob怎么拼接字符

在Oracle数据库中&#xff0c;拼接字符主要有以下几种方法&#xff0c;我会以清晰的方式为您解释&#xff1a; 使用“||”操作符 这是Oracle中常用的字符串拼接方法。 语法示例&#xff1a;SELECT Hello || World AS result FROM dual; 输出结果&#xff1a;Hello World …

ES脚本启动报错修改

使用自写脚本启动ES集群时&#xff0c;添加安全策略时报错如下&#xff1a; Positional arguments not allowed, found [ -E xpack.security.enabledtrue -E xpack.security.transport.ssl.enabledtrue -E xpack.license.self_generated.typebasic -E xpack.security.transpor…

宝塔下应该用 Memcached 还是 Redis?

明月最近在跟几个使用宝塔面板的客户运维的时候发现不少站长不知道如何选择 Memcached 和 Redis&#xff0c;甚至都说不清楚 Memcached 或者 Redis 具体是用来干啥的&#xff1f;甚至还碰到过一个站长 Memcached 和 Redis 都安装了&#xff0c;但一个都没有用&#xff0c;就那么…

希尔排序法

希尔排序为插入排序的优化&#xff0c;即将数组分组&#xff0c;将每一组进行插入排序&#xff0c;每一组排成有序后&#xff0c;最后整体就变有序了。 上面gap2&#xff0c;即5&#xff0c;14&#xff0c;18&#xff0c;27&#xff0c;68为一组&#xff1b;13&#xff0c;20&a…

Numba 的 CUDA 示例(1/4):踏上并行之旅

按照本系列从头开始使用 Python 学习 CUDA 编程 介绍 GPU&#xff08;图形处理单元&#xff09;&#xff0c;顾名思义&#xff0c;最初是为计算机图形学开发的。从那时起&#xff0c;它们几乎在每个需要高计算吞吐量的领域都无处不在。这一进步得益于 GPGPU&#xff08;通用 G…