【Day01】0基础微信小程序入门-学习笔记

文章目录

    • 今日学习目标
    • 小程序简介
      • 1. 小程序和普通网页开发的区别
      • 2. 体验小程序
    • 第一个小程序
      • 1.第一个小程序-注册
      • 2.第一个小程序-安装开发者工具
      • 3.第一个小程序-创建小程序项目
    • 小程序代码构成
      • 1.小程序代码构成-项目结构
      • 2. 小程序代码构成-JSON文件
      • 3. 小程序代码构成-WXML模板
      • 4. 小程序代码的构成 - JS逻辑交互
    • 小程序的宿主环境
      • 1. 简介
      • 2. 通信模型
      • 3.运行机制
      • 4. 组件
      • 5. API
    • 协调工作和发布
      • 1. 协同工作
      • 2.成员管理
      • 3.小程序版本
      • 4. 发布上线
    • 总结

走过路过不要错过

今日学习目标

  • 如何创建小程序项目

  • 清楚小程序的基本结构、

  • 小程序页面组成

  • 小程序常见组件的使用、

  • 小程序如何协同开发和发布。

小程序简介

1. 小程序和普通网页开发的区别

  • 运行环境不同:小程序运行在微信环境,网页运行在浏览器环境中。

  • 开发模式不同:网页开发模式:浏览器+代码编辑器。小程序的标准开发模式:申请小程序开发账号、安装小程序开发者工具、创建和配置小程序项目

  • API不同:小程序无法调用DOM和BOM的API,但是可以使用微信环境提供的各种API,例如地理定位、扫码、支付。

2. 体验小程序

手机扫码,是一个官方提供的示例

微信小程序为我们提供了四种能力,分别是:组件、扩展能力、接口、云开发。

在这里插入图片描述

第一个小程序

1.第一个小程序-注册

https://mp.weixin.qq.com/

点击网址 -> 右上角的 立即注册 -> 小程序 ->前往注册

填写账号信息,激活邮箱,登记信息。

注意:主体类型选择个人,填写个人主体信息,下面的二维码使用可作为管理员的微信账号扫码,然后点击继续即可。就注册完成了,跳转到这个页面即小程序管理后台

在这里插入图片描述

获取小程序AppID:

之后开发会用到

在这里插入图片描述

2.第一个小程序-安装开发者工具

官方推荐的小程序开发工具,主要功能是:

  • 快速创建小程序项目
  • 代码的查看和编辑
  • 对小程序功能进行调试
  • 小程序的预览和发布

不推荐使用VSCode

推荐下载稳定版本的,下载网址:https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html

在这里插入图片描述

在这里插入图片描述

下载完成后我们开始安装,全部 下一步,等待安装完成即可。可能需要手动配置环境变量,很简单。

在这里插入图片描述

打开开发者工具,页面是这样的,说明安装成功了喔。

微信扫上面的码就可以登录了。扫码成功如下:

在这里插入图片描述

下面我们就可以进行开发了

另,外观和代理设置:

在这里插入图片描述

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.第一个小程序-创建小程序项目

小程序 -> 新建项目

在这里插入图片描述

完成之后点击新建

这样就创建了一个新的项目了

查看效果方式:1.点击编译器的头部的 编译 按钮,看编译器左侧的效果 2.点击编译旁的预览,手机微信扫码看效果

在这里插入图片描述

主界面的五个组成部分:

在这里插入图片描述

帮助 - 开发者文档 之间定位

设置 - 通用设置 代理快捷键都可以设置

工具 - 构建npm之后可能会使用到

详情 - 项目的一些基本信息

机型建议使用 iphone 6/7/8,比例改为85%

在这里插入图片描述

小程序代码构成

1.小程序代码构成-项目结构

基本组成结构:

pages文件夹 : 存放所有小程序页面

utils文件夹 : 存放工具性质的模块(例如格式化时间的自定义模块)

app.js : 小程序项目的入口文件

app.json : 小程序项目的全局配置文件

app.wxss : 小程序项目的全局样式文件

project.config.json : 项目的配置文件

sitemap.json : 用来配置小澄夕及其页面是否允许被微信索引。

小程序页面组成部分:

在这里插入图片描述

​ 所有的小程序页面,都存放在page目录中,以单独的文件夹存在。

​ 每个页面都由四个基本文件组成,分别是:

​ -.js文件 :脚本文件,存放页面的数据,事件处理函数

​ -.json文件:当前页面配置文件,配置窗口外观、表现等

​ -.wxml文件:页面的模板结构文件

​ -.wxss文件:当前页面的样式表文件

json是一种数据格式,在实际开发中,json总是以配置文件的形式出现。小程序项目中也不例外;通过不同的.json配置文件,可以对小程序项目进行不同级别的配置。

2. 小程序代码构成-JSON文件

app.json是当前小程序的全局配置,包括小程序的所有页面路径、窗口外观、界面表现、底部tab

Demo当前的app.json配置内容如下:

在这里插入图片描述

project.config.json文件中,个性化配置会在这里设置,详情本地设置中选项的修改值会在这个文件中体现。

记住,拿到别人的项目,需要将appid修改,不然会报很多错误。

在这里插入图片描述

sitemap.json文件,配置小程序页面是否允许微信索引。微信现在开放了小程序内搜索,效果类似于PC网页的SEO

在这里插入图片描述

控制台默认打开微信索引提示关闭:project.config.json下的setting的checkSiteMap改为false即可。没有该选项可以手动补全。

.json文件存在于每一个单独文件夹中,可对本页的窗口外观进行配置,页面中的配置项会覆盖app.jsonwindow中相同的配置项。

将背景色修改成绿色

在这里插入图片描述

新建小程序页面:只需要在app.json -> pages中新增页面的存放路径然后保存,小程序开发者工具即可帮我们自动创建对应的页面文件。

在这里插入图片描述

修改项目首页:只需要调整app.json -> pages数字中页面的前后顺序,即可修改项目首页。小程序会把排在第一位的页面,当作项目的首页进行渲染。

"pages": ["pages/list/list","pages/index/index","pages/logs/logs" ],

在这里插入图片描述

3. 小程序代码构成-WXML模板

什么是WXML?是小程序框架设计的一套标签语言,用来构建小程序页面的结构,其作用类似于网页开发中的HTML

在这里插入图片描述

什么是WXSS?一套样式语言,用于描述WXML的组件样式,类似于网页开发中的CSS。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4. 小程序代码的构成 - JS逻辑交互

小程序中的 JS 文件分为三大类,分别是:

  • app.js
    是整个小程序项目的入口文件,通过调用 **App()**函数来启动整个小程序

  • 页面的 .js 文件
    是页面的入口文件,通过调用 **Page()**函数来创建并运行页面

  • 普通的 .js 文件

    封装公共的函数或属性供页面使用。

小程序的宿主环境

1. 简介

宿主环境指的是程序运行所必须的依赖环境。

手机微信是小程序的宿主环境。

在这里插入图片描述

小程序宿主环境包含的内容:通信模型、运行机制、组件、API

2. 通信模型

小程序通信的主体渲染层逻辑层WXMLWXSS在渲染层,JS在逻辑层。

小程序的通信模型分为两部分:逻辑层和渲染层之间通信,逻辑层和第三方服务器通信。均由微信客户端进行转发。

3.运行机制

小程序启动过程:

  • 代码包下载到本地

  • 解析app.json全局配置文件

  • 执行app.js小程序入口文件,调用App()创建小程序实例。

  • 渲染小程序首页

  • 小程序启动完成

页面渲染过程:

  • 加载解析页面的 .json 配置文件
  • 加载页面的.wxml模板和 .wxss 样式
  • 执行页面的 .js 文件,调用 Page()创建页面实例
  • 页面渲染完成

4. 组件

由宿主环境提供的

分类(9类):视图容器、基础内容、表单组件、导航组件、媒体组件、map地图组件、canvas画布组件、开放能力、无障碍访问

常见的 视图容器 类组件:

  • view

    类似于div元素,是一个块级元素,常用来实现页面的布局效果

  • scroll-view

    可滚动的视图区域,常用来实现滚动列表效果。

  • swiper和swiper-item

    轮播图组件和轮播图item组件

一个小栗子了解view的基本使用:

<!--pages/list/list.wxml-->
<view class="container1"><view>A</view><view>B</view><view>C</view>
</view>
/* pages/list/list.wxss */
.container1 view{height: 100px;width: 100px;text-align: center;line-height: 100px;
}
.container1 view:nth-child(1){
background-color:hotpink;
}
.container1 view:nth-child(2){background-color: gray;}
.container1 view:nth-child(3){background-color: skyblue;
}
.container1{display: flex;justify-content: space-around;
}

在这里插入图片描述

一个小栗子了解scroll-view的基本使用:

内容超出一定范围就会发生滚动

纵向滚动scroll-y、横向滚动scroll-x

<!--pages/list/list.wxml-->
<scroll-view class="container1" scroll-y="true"><view>A</view><view>B</view><view>C</view>
</scroll-view>
/* pages/list/list.wxss */
.container1 view{height: 100px;width: 100px;text-align: center;line-height: 100px;
}
.container1 view:nth-child(1){
background-color:hotpink;
}
.container1 view:nth-child(2){background-color: gray;}
.container1 view:nth-child(3){background-color: skyblue;}
.container1{width: 100px;height: 120px;
}

可以实现滚动了

1

一个小栗子了解swiperswiper-item的基本使用

<!--pages/list/list.wxml-->
<swiper><swiper-item class="swiper-container"><view class="item">A</view></swiper-item><swiper-item><view class="item">B</view></swiper-item><swiper-item><view class="item">C</view></swiper-item>
</swiper>
/* pages/list/list.wxss */
.container1 view{height: 100px;width: 100px;text-align: center;line-height: 100px;
}
.container1 view:nth-child(1){
background-color:hotpink;
}
.container1 view:nth-child(2){background-color: gray;}
.container1 view:nth-child(3){background-color: skyblue;}
.container1{width: 100px;height: 120px;
}
.swiper-container{height: 150px;
}
.item{height: 100%;line-height: 150px;text-align: center;
}
swiper-item:nth-child(1) .item{background-color: lightblue;
}
swiper-item:nth-child(2) .item{background-color: rgb(8, 0, 85);
}
swiper-item:nth-child(3) .item{background-color: lightyellow;
}

在这里插入图片描述

在这里插入图片描述

常用 基础内容 组件

  • text

    文本组件,类似于span,行内元素

  • rich-text

    富文本组件,支持把HTML字符串渲染为WXML结构

一个小栗子了解text的基本使用

text组件的selectable属性,实现长按选中文本内容效果(真机看效果喔)

<view>
手机号支持长按选中效果<text selectable>12121212</text>
</view>

一个小栗子了解rich-text的基本使用

通过nodes属性节点,把HTML字符串渲染为对应的UI结构。

<rich-text nodes="<h1 style='color:red'>标题</h1>"></rich-text>

在这里插入图片描述

其他常用组件

  • button

    按钮组件,通过open-type属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息)

  • image

    图片组件,默认宽300px长240px

  • navigator(后面会学习到,此处省略)

    页面导航组件,类似于a链接

一个小栗子了解button组件的基本使用

<!--pages/list/list.wxml-->
<!-- type指定按钮类型,size="mini"按钮大小,plain按钮是否镂空这三个可以配合使用-->
<button type="primary">主色调</button>
<button type="warn">警告</button>
<button size="mini">主色调</button>
<button type="primary" plain>主色调</button>

在这里插入图片描述

一个小栗子了解image组件的基本使用

通过mode属性指定图片的裁剪缩放模式,常用的mode属性值如下:

mode 值说明
scaleToFill(默认值)缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image 元素
aspectFit缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来
aspectFill缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
widthFix缩放模式,宽度不变,高度自动变化,保持原图宽高比不变
heightFix缩放模式,高度不变,宽度自动变化,保持原图宽高比不变

默认modescaleToFill

<image src=".." mode="aspectFit"></image>

5. API

宿主环境提供,通过API,开发者可以方便的调用微信提供的能力,例如获取用户信息、本地存储、支付功能等。

分类(3类)

  • 事件监听API

    on开头,监听某些事件的触发,例如wx.onWindowResize(function callback)监听窗口尺寸变化的事件。

  • 同步API

    Sync结尾,执行结果可通过函数返回值直接获取,执行出错会抛出异常。例如wx.setStorageSync('key','value')向本地存储写入内容。

  • 异步API

    类似于jQuery$.ajax(options)函数,需要通过success、fall、complete接收调用的结果。比如wx.request()

协调工作和发布

1. 协同工作

一个项目,不同岗位不同角色的员工同时参与设计与开发。

此时出于管理需要,我们需要对不同岗位不同角色的员工的权限进行边界的划分,使得他们可以高效的协同工作。

项目成员的组织结构

在这里插入图片描述

小程序的开发流程

在这里插入图片描述

2.成员管理

成员管理的两个方面

在这里插入图片描述

小程序成员管理体现在管理员对小程序项目成员及体验成员的管理:

  • 项目成员:表示参与小程序开发、运营的成员
    可登录小程序管理后台
    管理员可以添加、删除项目成员,并设置项目成员的角色

  • 体验成员:表示参与小程序内测体验的成员路
    可使用体验版小程序,但不属于项目成员管理员及项目成员均可添加、删除体验成员

不同项目成员对应的权限:

在这里插入图片描述

开发者的权限说明:

  • 开发者权限:可使用小程序开发者工具及对小程序的功能进行代码开发
  • 体验者权限:可使用体验版小程序
  • 登录权限:可登录小程序管理后台,无需管理员确认
  • 开发设置:设置小程序服务器域名、消息推送及扫描普通链接二维码打开小程序
  • 腾讯云管理权限:云开发设置

如何添加项目成员体验成员

在这里插入图片描述

3.小程序版本

开发 -> 测试 -> 正式版

版本阶段说明
开发版本使用开发者工具,可将代码上传到开发版本中。开发版本只保留每人最新的一份上传的代码。点击提交审核,可将代码提交审核。开发版本可删除,不影响线上版本和审核中版本的代码。
体验版本可以选择某个开发版本作为体验版,并且选取一份体验版。
审核中的版本只能有一份代码处于审核中。有审核结果后可以发布到线上,也可直接重新提交审核,覆盖原审核版本。
线上版本线上所有用户使用的代码版本,该版本代码在新版本代码发布后被覆盖更新。

4. 发布上线

步骤

  • 上传代码

    工具栏上传按钮,填写版本号项目备注

    登录到小程序管理后台 - 管理 - 版本管理 - 开发版本查看刚刚上传的版本。

  • 提交审核

    开发版本的列表,点击提交审核的按钮,填写相关信息即可提交给腾讯官方进行审核。

  • 发布

    收到小程序通过审核的通知,此时在审核版本的列表中,点击“发布”按钮之后,即可把“审核通过”的版本发布为“线上版本”。

基于小程序码进行推广

优点:样式上更具辨识度和视觉冲击力,更清晰树立品牌形象、更好推广小程序

获取小程序码的 5 个步骤:
登录小程序管理后台 ->设置 ->基本设置 ->基本信息 ->小程序码及线下物料下载

查看运营数据的两种方式:

  • 在 “小程序后台查看”:管理后台侧边栏的统计。
  • 使用"小程序数据助手"查看:微信之间搜索这个关键词即可

总结

学完之后,你需要:

能够知道如何创建小程序项目
能够清楚小程序项目的基本组成结构
能够知道小程序页面由几部分组成
能够知道小程序中常见的组件如何使用
能够知道小程序如何进行协同开发和发布

持续更新~
在这里插入图片描述

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

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

相关文章

【DKN: Deep Knowledge-Aware Network for News Recommendation】

DKN: Deep Knowledge-Aware Network for News Recommendation 摘要 在线新闻推荐系统旨在解决新闻信息爆炸的问题&#xff0c;为用户进行个性化推荐。 总体而言&#xff0c;新闻语言高度凝练&#xff0c;充满知识实体和常识。 然而&#xff0c;现有的方法并没有意识到这些外部…

Javase.String 类

String 类 【本节目标】1. String类的重要性2. 常用方法2.1 字符串构造2.2 String对象的比较2.3 字符串查找2.4 转化2.5 字符串替换2.7 字符串截取2.8 其他操作方法2.9 字符串的不可变性2.10 字符串修改 3. StringBuilder和StringBuffer3.2 面试题&#xff1a; 4. String类oj4.…

软件开发为什么写日志,怎样写日志,什么时候写日志?

目录 一、为什么需要写日志 二、什么时候写日志 三、日志是写给谁看的 四、日志里都要写什么 五、日志的组织形式应该怎样 六、综上所述 在软件系统中&#xff0c;记录日志是基本且必要的操作&#xff0c;这一点几乎是所有开发者的共识。各种编程语言中都有众多的日志框架…

基于MATLAB的误码率与信噪比(附完整代码与分析)

目录 一. 写在前面 二. 如何计算误码率 三. 带噪声的误码率分析 3.1 代码思路 3.2 MATLAB源代码及分析 四. 总结 4.1 输入参数 4.2 规定比特长度 4.3 特殊形式比较 一. 写在前面 &#xff08;1&#xff09;本文章主要讨论如何仿真误码率随着信噪比变化的图像 &#…

112、路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是指没有子节点…

Java基础16(集合框架 List ArrayList容器类 ArrayList底层源码解析及扩容机制)

目录 一、什么是集合&#xff1f; 二、集合接口 三、List集合 四、ArrayList容器类 1. 常用方法 1.1 增加 1.2 查找 int size() E get(int index) int indexOf(Object c) boolean contains(Object c) boolean isEmpty() List SubList(int fromindex,int …

QT-QPainter实现一个可切换的开关控件

1、效果 2、核心代码 #ifndef SWITCH_H #define SWITCH_H #include <QWidget> #include <QTimer>

Freemaker 模板

背景 发送邮件&#xff0c;正文利用freemaker完成 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId> </dependency>Autowired private Configuration configurer;GetMap…

如何调用讯飞星火认知大模型的API以利用其卓越功能

摘要 讯飞星火认知大模型&#xff0c;作为科大讯飞精心打造的一款人工智能模型&#xff0c;在自然语言理解和生成方面展现出了卓越的能力。这款模型通过深度学习技术和大量数据的训练&#xff0c;具备了强大的语言理解、文本生成和对话交互等功能。 一、模型功能概述 讯飞星…

我的创作纪念日--码农阿豪

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑&#xff0c;可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界&#xff0c;把…

Flow Matching For Generative Modeling

Flow Matching For Generative Modeling 一、基于流的&#xff08;Flow based&#xff09;生成模型 生成模型 我们先回顾一下所谓的生成任务&#xff0c;究竟是想要做什么事情。我们认为&#xff0c;世界上所有的图片&#xff0c;是符合某种分布 p d a t a ( x ) p_{data}(…

【因果推断python】45_估计量1

目录 问题设置 目标转换 到目前为止&#xff0c;我们已经了解了如何在干预不是随机分配的情况下对我们的数据进行纠偏&#xff0c;这会导致混淆偏差。这有助于我们解决因果推理中的识别问题。换句话说&#xff0c;一旦单位是可交换的&#xff0c;或者 &#xff0c;就可以学习…

增加了redis分布式锁,但是还是生成了重复数据

增加了redis分布式锁&#xff0c;但是还是生成了重复数据 原因 两个线程 第一个线程先获取锁&#xff0c;然后进行新增&#xff0c;此时第二个线程也进入方法体&#xff0c;尝试获取锁&#xff0c;结果没获取到&#xff0c;继续在5s内尝试&#xff0c;在redis获取锁等待5s的过…

Linux环境如何彻底卸载感干净RabbitMQ并重新安装

Linux&#xff08;Centos7&#xff09;环境如何彻底卸载感干净RabbitMQ并重新安装 我这个是超级简单的&#xff0c;如果安装不好&#xff0c;顺着网线来找我 一、卸载RabbitMq相关的软件包 1. 先停止RabbitMq服务 systemctl stop rabbitmq-server2. 查看rabbitmq安装的相关…

房地产市场的三个背离 欧美市场混动占优,丰田押注小发动机

当前我国房地产市场二手房表现与新房表现明显背离&#xff0c;核心城市表现与低线城市开始背离&#xff0c;未来可能出现房价表现与开发投资景气表现背离。看好核心城市在政策推动下进一步释放需求推动市场结构性复苏的前景。 房地产开发景气度继续下行 2024年5月&#xff0c;…

QT利用QGraphicsDropShadowEffect效果及自定义按钮来实现一个炫酷键盘

1、效果 2、核心代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent<

开源!在goview中实现cesium的低代码可视化编辑

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀&#xff0c;这是2024年输出的第19/100篇文章&#xff1b; 前言 前阵子写了一篇goview二开的文章教程&#xff0c;很多小伙伴留言对goview嵌套cesium并实现…

TCP编程

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 由于TCP连接具有安全可靠的特性&#xff0c;所以TCP应用更为广泛。创建TCP连接时&#xff0c;主动发起连接的叫客户端&#xff0c;被动响应连接的叫服…

【TIM输出比较】

TIM输出比较 1.简介1.1.输出比较功能1.2.PWM 2.输出比较通道2.1.结构原理图2.2.模式分类 3.输出PWM波形及参数计算4.案例所需外设4.1.案例4.2.舵机4.3.直流单机 链接: 15-TIM输出比较 1.简介 1.1.输出比较功能 输出比较&#xff0c;英文全称Output Compare&#xff0c;简称O…