微信里面app,16年推出
竞品:支付宝小程序,钉钉,美团,头条,抖音qq小程序
优点
1,在微信里面自由分享,2,不用下载app,3,能快速的开发,使用微信的api接口

二,微信开发者工具

下载微信web开发者工具,根据自己的操作系统下载对应的安装包进行安装即可。

  • 新建项目
  • 页面介绍

  • 项目组成

  • page.json 文件

5,新建页面

在pages文件夹右键建立新的文件夹
在文件中右键新建页面
哪个page在最上面,默认显示哪页
json要求严格语法,不能有多余的注释和逗号


文件用途

ceshi.wxml   页面
ceshi.js 写业务逻辑
ceshi.wxss 写页面样式
ceshi.json 页面配置

设置主页

把新建的文件路径调到最上面那就是主页了,意思就是,第一个路径就是首页的路径!

页面配置:
"enablePullDownRefresh": true,  允许下拉刷新
"backgroundTextStyle": "dark",  背景文字颜色
"backgroundColor":"#f70",       背景颜色
"usingComponents":{}              组件

三,基本语法

小程序的模板语法约等于vue的模板语法

1,文本渲染
{{ msg}}可以执行简单的js表达式
{{2+3}}
{{msg.length}}
2,条件渲染
wx:if=""
wx:elif=""
wx:else
3,列表渲染
wx:for="{{list}}"
wx:key="index"{{item}}{{index}}4,自定义列表渲染
定义item与index的名称
wx:for="{{list}}}"
wx:for-item="myitem"
wx:for-index="myidx"
{{myidx}}
{{myitem}}5,导入import
只能导入template内容
template/utils.wxml
< template name=“userCart”> 用户名:{{name}} < /temlate>
home.wxml
< import src=“/template/utils.wxml”>
< tempate is=“userCart” data=“{{…u1}}”>include
只能导入非template内容
template/foot.wxml < view> {{内容}} </ view>
home.wxml < include src=“/template/foot.wxml”>6,wxss
默认单位是rpx
750rpx 等于一个屏幕的宽
375就是50%的宽7,事件
bindInput     表单输入时
bindconfirm    表单输入确认
bindtap      点击时候8,内置组件
view         组件块组件
text         组件行内组件
button       组件按钮
input        组件表单9,事件的传参
<button data-msg="xxx" bindtap="tapHd">
获取事件的参数  e.target.dataset.msg
10,表单的绑定
<input value="{{s1}}" bindinput="inputHd">
inputHd(e){this.setData({s1:e.detail.value})
}
表单的值获取:e.detail.value11,内置的api
显示提示
showToast
本地存储
wx.setStorageSync(key,value)
本地取
wx.getStorageSync(key)
wx.request 网络请求
12,生命周期
onLoad                          页面加载完毕
onPullDownRefresh               下拉刷新
onReachBottom                    触底更新

四,页面切换
1,< navigator></ navigator >标签
这是最常见的一种跳转方式,相当于html里的a标签.但需要注意的是 该方法不能跳转tabbar页面.

格式为:

 <navigator url="........"></navigator><navigator url="/pages/event/event">前往event</navigator>

2,wx.navigateTo.
通过构造js函数,在函数中调用该接口可实现页面跳转的效果.但该接口同样不能跳转tabbar页面.跳转后左上角有返回小箭头,点击可返回原本页面.

格式为:

//<!**wxml文件**>
<view class="select_calculator" bindtap="next_calculator">
//js文件
next_calculator:function () {wx.navigateTo({url: '/pages/calculator/calculator',})

3,wx.redirectTo.
关闭当前页面,跳转到应用内的某个页面(不能跳转tabbar页面)。类似于html中的 window.open(‘…’);
跳转后左上角出现返回小箭头,点击后可返回原本页面.

格式为:

<view><navigator open-type="redirect" url="/pages/event/event">跳转并替换</navigator>
</view>

4,wx.switchTab.
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面;该方法只能跳转tabbar页面.

  post_calculator:function () {wx.switchTab({url: '/pages/calculator/calculator',})},
})

5,wx.reLaunch.
关闭所有页面,打开到应用内的某个页面。 跟 wx.redirectTo 一样左上角不会出现返回箭头,但两者却不完全相同;

格式为:

<view><navigator open-type="reLaunch">重启</navigator>
</view>

五 ,tabBar 全局配置
tabBar 是移动端应用常见的页面效果, 用于实现多页面 的快速切换 。
小程序中通常将其分为:

  1. 底部 tabBar

  2. 顶部 tabBar

    注意:
    tabBar中只能配置最少 2 个、最多 5 个 tab 页签
    当渲染顶部 tabBar 时,不显示 icon,只显示文本
    tabBar 的 6 个组成部分

① backgroundColor:                tabBar 的背景色
② selectedIconPath:          选中时的图片路径
③ borderStyle:                   tabBar 上边框的颜色
④ iconPath:                  未选中时的图片路径
⑤ selectedColor:             tab 上的文字选中时的颜色
⑥ color:                     tab 上文字的默认(未选中)颜色
  1. tabBar 节点的配置项

  2. 每个 tab 项的配置选项

  3. 全局配置 - 案例:配置 tabBar

    配置 tabBar 选项
    ① 打开 app.json 配置文件,和 pages、window 平级,新增 tabBar 节点
    ② tabBar 节点中,新增 list 数组 ,这个数组中存放的,是每个 tab 项的配置对象
    ③ 在 list 数组中, 新增每一个 tab 项的配置对象 。对象中包含的属性如下: pagePath 指定当前 tab 对应的页面路径 【 必填 】
    text 指定当前 tab 上按钮的文字【 必填】
    iconPath 指定当前 tab 未选中时候的图片路径【可选】
    selectedIconPath 指定当前 tab 被选中后高亮的图片路径【可选】

代码如下:
{"pages": ["pages/hone/hone","pages/Profile/Profile","pages/experience/experience","pages/skill/skill","pages/index/index","pages/logs/logs"],"tabBar":{"color": "#777","selectedColor": "#1cb9ce","list":[{"pagePath": "pages/hone/hone","text":"简历信息","iconPath": "/pages/img/icon08.png","selectedIconPath": "/pages/img/icon08.png"},{"pagePath": "pages/skill/skill","text":"个人技能","iconPath": "/pages/img/icon04.png","selectedIconPath": "/pages/img/icon04.png"},{"pagePath": "pages/experience/experience","text":"项目经历","iconPath": "/pages/img/icon02.png","selectedIconPath": "/pages/img/icon02.png"},{"pagePath": "pages/Profile/Profile","text":"自我评价","iconPath": "/pages/img/icon06.png","selectedIconPath": "/pages/img/icon06.png"}]},"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "Weixin","navigationBarTextStyle": "black"},"style": "v2","sitemapLocation": "sitemap.json"
}

六,页面传参
wxml 代码如下:

<view><navigator open-type="navigate" url="/pages/event/event?name=mumu&age=18">事件event</navigator>
</view>
<view><navigator open-type="redirect" url="/pages/event/event?name=曾庆林&age=33">跳转并替换</navigator>
</view>js 代码如下:
/*** 页面的初始数据*/data: {num:null,},goEvent(e){// 获取到传递的参数typevar type = e.target.dataset.type;// 如果type值是redirect 替换跳转if(type=="redirect"){wx.redirectTo({url: "/pages/event/event",})}else{// 否则就普通跳转wx.navigateTo({url: '/pages/event/event',})}},/*** 生命周期函数--监听页面加载*/onLoad(options) {// 更新导航栏的标题wx.setNavigationBarTitle({title: '导航与跳转',})},/*** 生命周期函数--监听页面显示*/onShow() {this.setData({num:app.globalData.num})},

页面传递的参数
页面传递的参数

<view>
姓名:{{name}},年龄{{age}}
</view>

七,封装 request
文件路径: utils/request.js

// 基础的url
const URI = {baseURL:"http://dida100.com"
}
// {name:"mumu",age:18} => name=mumu&age=18
function tansParams(obj){var  str = "";for(var k in obj){str+=k+"="+obj[k]+"&";}//移除最后一个&return str.slice(0,-1);
}
function request(option){var url = option.url;// 01 可以添加baseURL// 是不是以http开头的,是用url不是加上baseURLurl = url.startsWith("http")?url:URI.baseURL+url;// 选项里面有params(get传入的参数)if(option.params){// 如果有参数,把参数转换为url编码形式加入url+="?"+tansParams(option.params);}// 02 可以添加请求头var  header = option.header||{};header.Authorization ="Bearer "+wx.getStorageSync('token');// 03 可以添加加载提示if(option.loading){wx.showToast({title: option.loading.title,icon:option.loading.icon,})}// 返回一个promisereturn new Promise((resolve,reject)=>{wx.request({// 请求的地址如果一http开头直接用url不是http开头添加我们 baseUrLurl: url,method:option.method||"GET",//请求的方法 默认getdata:option.data, //post出入的参数header,success(res){// 请求成功resolve(res.data);},fail(err){// 04 对错误进行处理wx.showToast({title:"加载失败",icon:"none"})// 请求失败reject(err);},complete(){// 关闭加载提示wx.hideToast();}})})
}
// 定义get简易方法
request.get= (url,config)=>{return request({url,method:"get",...config})
}
// 定义post简易方法
request.post= (url,data,config)=>{return request({url,method:"post",data,...config})
}
// 导入request
module.exports={request}

八, 内置api

显示提示     showToast
本地存储      wx.setStorageSync(key,value)
本地取        wx.getStorageSync(key)
wx.request      网络请求

接着打开微信开发者工具, 新建example目录的项目就可以预览示例了。

微信小程序开发(保姆式教程,点赞+收藏)相关推荐

  1. 还不会小程序开发?适用于新手、前端、后端、全栈的小程序开发保姆级教程!

    2017年,那个男人微信之父"龙哥",在公开课上提出"小程序".那时大家都还在享受移动互联网所带来的便捷体验,对于微信这个庞然大物所倡导的新物种显然是有点不知所 ...

  2. 微信小程序开发实现登陆教程

    为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口.乍一看文档,感觉文档上讲的非常有道理,但是实现起来又真的是摸不着头脑,不知道如何管理和维护登录态.本文就来手把手的教会 ...

  3. 微信小程序开发1.简易教程

    微信小程序 简易教程 一.基础: 第一章 起步 开发小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号你就可以管理你的小程序. 跟随这个教程,开始你的小程序之旅吧! 申请账号 点击 https:/ ...

  4. android开发小项目实例_微信小程序开发的实例教程

    一.注册小程序帐户 1.进入微信公众平台,注册一个小程序帐号,并根据提示填写相应的信息. 2.成功注册后,进入主页,然后在小程序发布过程->小程序开发和管理->配置服务器中单击" ...

  5. 微信小程序开发超详细教程

    分享一个我的公众号,最近突然想玩公众号,之前做过一段时间前端开发,考虑到现在应用程序越来越多,未来社会一定是一个充满"只有你想不到,没有你做不到"的App的世界!而微信小程序又给我 ...

  6. 微信小程序开发全案精讲-刘刚-专题视频课程

    微信小程序开发全案精讲-4467人已学习 课程介绍         微信小程序开发全案精讲是一套以案例为主线的课程,课程总共九章,第一章回顾基础知识,后面八章全部是以典型的案例作为讲解,选取了美食类: ...

  7. 视频教程-微信小程序开发全案精讲-微信开发

    微信小程序开发全案精讲 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure RP8原型设计图解 ...

  8. 微信小程序开发导航:精品教程+网友观点+demo源码(5月9日更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  9. 微信小程序开发分销制度济南_花店微信小程序开发教程

    如何将自己的鲜花商品快速配送出去,避免鲜花过期浪费,是很多传统花店商家的难题.不过随着微信小程序的出现,这一难题也渐渐得到了解决.花店商家可以通过自己的小程序商城,打通线上渠道,可以加大推广.扩大销量 ...

  10. 【微信小程序开发(云壁纸小程序教程)】

    微信小程序开发(云壁纸小程序教程) 1. 准备 HBuilder X 和 微信开发者工具 2. 进入网站注册小程序 3. 点击发行,这时候就用到微信开发者工具 1. 准备 HBuilder X 和 微 ...

最新文章

  1. 学习webpack记录(一)
  2. IdentityServer4系列 | 混合模式
  3. WPF入门教程系列(一) 创建你的第一个WPF项目
  4. MySql安装和基本管理
  5. 如何在Win7自安装驱动
  6. 关于ORACLE删除分区
  7. QWERT切换到DVORAK
  8. 请领导过目文件怎么说_【文件夹】英文怎么说?
  9. 爬虫笔记——东方财富科创板数据爬取(selenium方法)
  10. Python 给视频添加水印
  11. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java面向中小学生的植物科普网站6s4f9
  12. 电脑解压文件丢失怎么找回来?四种恢复方法
  13. 三进网吧后,我“被跳槽”了!
  14. SOLIDWORKS 2018 怎样画出一条垂直的直线?
  15. GridControl之GridView(属性篇)(一)
  16. 树莓派之无屏幕下发现树莓派IP方法
  17. Linux入门基础(了解Linux+简单命令)
  18. 《Python语言程序设计》王恺 王志 机械工业出版社 第一章 初识Python 课后习题答案
  19. 人体红外传感器简明教程
  20. 【工具】fis3 - 使用教程(01)

热门文章

  1. java 三角形面积公式_java中计算任意三角形面积。
  2. “微天气” - 一个基于微信小程序的智能天气预报体验
  3. PyTorch入门笔记-matmul函数详解
  4. 网页前端的Tribon三维模型展示技术分析
  5. 有python专业的世界大学_爬虫可视化 | 三分钟带你看遍世界大学排行
  6. 【Go】学生教务管理系统【无界面 / 单机版】(一)
  7. 做漂亮女人的每天八件大事
  8. iPad可以用来学计算机二级吗,哪个软件可以做计算机二级office题
  9. mysql怎么进行单表查询_MySQL之单表查询
  10. 关于win10系统(客户机)无法添加网络共享打印机的解决办法(提示信息:操作失败,错误为0X0000011B)