首页 > 编程语言 >微信小程序day01

微信小程序day01

时间:2022-08-22 22:47:41浏览次数:87  
标签:index name 微信 day01 程序 item data pages

微信小程序

小程序 App
大小有限制 , 不超过2M(功能相对局限) 大小无限制 (功能更强大)
不用安装 , 不用更新 (方便) 需要到商城下载 , 定期更新(复杂)
打开方式 (先打微信->小程序) 适合使用频率低 打开方式非常方便 , 直接在桌面点击 , 适合使用频率高
跨平台 (写一次 , 运行在所有平台) 上线简单 IOS版 , 安卓版 (小米 , 应用 , 华为 .....) 上线麻烦
成本非常非常便宜 成本非常非常贵

一、微信小程序创建

  1. 微信公众平台 (公众号):

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

  1. 微信开放平台:

https://open.weixin.qq.com/

  1. 微信开发文档:

https://developers.weixin.qq.com/miniprogram/dev/framework/

  1. 微信开发者工具下载路径:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.htm

二、目录结构

.json 配置文件

1. 主体文件:
	app.js		文件主入口
	app.json	全局配置文件
	app.wxss	全局的样式文件
	(注意: 以上文件的文件名不能修改,且文件不能缺少)
	
2. 页面文件:
	.wxml	=>	.html
	.wxss	=>	.css
	.js		=>	.js
	.json	=>	.json
	(小程序四个页面文件不需要互相引入)

三、创建新页面及其他介绍

3.1、创建新页面

在pages选项中直接写好路径,保存之后,自动生成四个文件

{
    "pages": [
        "pages/index/index",
        "pages/logs/logs",
        "pages/cart/cart",
        "pages/cate/cate"
	],
}

3.2、tabBar(json文件)

{
    "entryPagePath": "pages/index/index",
    "pages": [
        "pages/index/index",
        "pages/logs/logs",
        "pages/cart/cart",
        "pages/cate/cate",
        "pages/mine/mine"
    ],
    "window": {
        "backgroundTextStyle": "light",			//文本样式设置
        "navigationBarBackgroundColor": "#f00",	//导航条背景设置
        "navigationBarTitleText": "首页",		  //导航条颜色
        "navigationBarTextStyle": "white"		//导航条文字颜色
        (导航条文字颜色只能是black或者white两个值中的一个)
    },
    "style": "v2",			//样式级别
    "sitemapLocation": "sitemap.json",
    "tabBar": {
        "color": "#ccc",
        "selectedColor": "#00f",
        "position": "bottom",		//呈现位置
        "custom": false,			//自定义格式
        "list": [
            {
                "text": "首页",					//tabBar文字
                "pagePath": "pages/index/index", //跳转路径
                "iconPath": "./bar/bar1_1.png",	 //图标路径
                "selectedIconPath": "./bar/bar1.png" //被选择图标路径
            },
            {
                "text": "分类",
                "pagePath": "pages/cate/cate",
                "iconPath": "./bar/bar2_2.png",
                "selectedIconPath": "./bar/bar2.png"
            },
            {
                "text": "我的",
                "pagePath": "pages/mine/mine",
                "iconPath": "./bar/bar3_3.png",
                "selectedIconPath": "./bar/bar3.png"
            }
        ]
    }
}

3.3、样式单位介绍

一般,移动端尺寸是750px或者1125px,都是375的倍数

小程序常用单位: rpx (responsive) ,宽度是自适应宽度

1px=2rpx (也就是说设计稿中的100px,小程序中要写成200rpx)

四、data数据

1. 插值语法

<!-- 
    整个页面的数据来源,都是在 js文件中对应的data属性
	data:{}
 -->


<!--变量解析-->
<view>{{ name }}</view>
<view id="item-{{ id }}">id属性</view>
<view id="{{ 'item-' + id }}">id属性</view>

2. 获取和设置data中的数据

//页面加载完成
	onLoad(){
        //1. 获取data的数据
        var name=this.data.name
        
        //2. 设置data的数据
        	//2.1 逻辑层数据发生变化,页面没有重新渲染
        	this.data.name="新值";
        
        	//2.2 即改变了逻辑数据,也改变了视图层数据
        	this.data.name="新值"
        	this.serData({
                name:"新值"
            },function(){
                
            })
    }

五、事件系统

1. 事件绑定

<!--vue事件绑定-->
	@事件类型="方法名()"
	v-on:事件类型="方法名()"

<!--小程序事件绑定-->
	bind+事件类型="方法名"		(允许事件冒泡)
	catch+事件类型="方法名"	(阻止事件冒泡)
	(小程序中事件绑定,函数名不加括号)

 <button  bindtap="click">点击</button> 
 <button  catchtap="click">点击</button> 

 <view data-name="拉拉" bindtap="click1">
    <button data-btn='btn'  bindtap="click2">点击</button>
    <!--会产生事件冒泡-->
 </view>
 

2. 事件传参

 <button  data-name="旺财" bindtap="click">点击</button>

3. 事件接参

// 自定义方法
	click(e){
        // e是接收的参数
        let {name}=e.target.dataset;		
        let {name}=e.currentTarget.dataset;	
    }


// 总结:
1.target   获取事件源上的参数
2.currentTraget  获取当前事件组件上的参数
3.detail  组件私有事件传递的参数

六、双向数据绑定

1. 简易的双向数据绑定

<!--	model:value=""   -->
适合类型: number string

<view> num:{num} </view>
<input type="text" model:value="{{num}}"/>

2. 引用类型的双向数据绑定

小程序中没有v-model这个属性, 只能用事件和值配合来代替

.wxml文件中:
<input type="text" value="{{txtVal}}" bindinput="bdipt"/>
<view>{{txtVal}}</view>
.js文件中:
bdipt(e){
    this.setData({
      txtVal:e.detail.value
    });
},

七、数据的渲染

7.1 普通数组

<!-- vue -->
v-for="(item,index) in 数组名" :key="item.id"

<!-- 小程序 -->
wx:for="{{数组名}}"
	默认:item,index
	改变默认值: wx:for-item="xxx"
			  wx:for-index="xxx"
	wx:key="*this/唯一属性"
		*this:    如果item是number或者string类型,且值唯一,用*this
		唯一属性:  如果item不是number或string,使用item中的唯一的属性 
	
	<!--一维数组-->
	<view wx:for="{{arr}}">
		{{item}}-{{index}}
	</view>

	<!--对象数组-->
	<view wx:for="{{brr}}" wx:key="id" wx:for-item="item2" wx:for-index="index2">
		{{item2.name}} - {{index2}} - {{item2.age}}
	</view>

	
	<!--添加数据不改变索引-->
	 <switch wx:for="{{ crr }}" wx:key="*this">{{ item }}</switch>
 	<button bindtap="add">添加</button>
		<!--js文件-->
		add(){
        	var len = this.data.crr.length +1;
        	this.data.crr.unshift(len);
        	this.setData({
            	crr:this.data.crr
        	})
    	}

7.2 二维数组

<view wx:for="{{arr3}}" wx:key="id">
  {{item.className}}的学生有:
  <text wx:for="{{item.students}}" wx:key="*this" wx:for-item="aaa">{{aaa}}</text>
</view> 
<!--
	arr3:[{
      id:"01",
      className:"一班",
      students:["张三","李四","王五"]
    },{
      id:"02",
      className:"二班",
      students:["刘备","关羽","张飞"]
    }],
-->

八、条件渲染

vue

v-if=""  v-else-if=""  v-else   v-show

小程序

wx:if=""  wx:elif=""  wx:else   hidden

<!--单分支-->
<view wx:if="{{ age >= 18 }}">成年</view>

<!--双分支-->
<view wx:if="{{ age >= 18 }}">成年</view>
<view wx:else>未成年</view> -->

<!--多分支-->
<view wx:if="{{ age>=0 &&  age<14 }}">未成年</view>
<view wx:elif="{{ age>=14 &&  age<18 }}">青少年</view>
<view wx:elif="{{ age>=18 &&  age<35 }}">青年</view>
<view wx:elif="{{ age>=35 &&  age<=120  }}">中年</view>
<view wx:else>年级不合法</view>

<!--hidden-->
操作wxss样式,改变display
<view hidden="{{false}}">这个是显示</view>
<view hidden="{{true}}">这个是隐藏</view>

标签:index,name,微信,day01,程序,item,data,pages
From: https://www.cnblogs.com/ashuang/p/16614494.html

相关文章

  • node-day01
    一、服务端与客户端的关系客户端指的就是我们之前学习的前端搭建页面请求接口前端的特点在于不操作数据库,但是后端是可以的后端把查阅的数据写成了端口我们前端去调用......
  • 使用clipboard.js复制文字+图片到微信后图片不显示问题处理
    使用clipboard.js复制文字+图片,粘贴到微信不显示图片,而QQ可以。解决方案:图片链接使用http,不要使用https。 使用clipboard.js实现复制功能文字+图片到微信客户端输入......
  • matlab编写程序时的注释该怎么写
    不同的组织都有不同的规定,对于matlab注释来说,只要包括以下几个方面就差不多够了:1、Nameofthefunction函数的名称2、Descriptionofwhatthefunc......
  • rk3566 linux编译运行librga C++程序
    本文使用的是linuxaarch64版librga.so(1.3.2),来自https://github.com/airockchip/librga 运行环境:rk3566linux系统编译环境:ubuntu20.04gcc/g++9.4工具链:gcc-buildroot......
  • 大屏小程序探索实践 | Cube 技术解读
    简介: 支付宝客户端有极强的动态化诉求,不论iOS还是Android平台,重新分发软件包从时间上,效率上难以满足产品运营的要求,因此客户端动态化技术应运而生。Cube起源于Nati......
  • 多平台Java安装程序构建器
    install4j是一个功能强大的多平台Java安装程序构建器,可为Java应用程序生成本机安装程序和应用程序启动器。install4j的易于使用,它的扩展平台支持和其强大的屏幕和动作系统......
  • 微信小程序 自定义时间组件
    效果图代码xml<viewclass="date_bg_view"></view><viewclass="date_content"><viewclass="date_title"><van-iconname="cross"class="close"size="20p......
  • 小程序worker的使用
    JavaScript线程JavaScript语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增......
  • 最小二乘法用于多项式的拟合及程序实现
    改写自:https://blog.csdn.net/piaoxuezhong/article/details/54973750 1#include<stdio.h>2#include"stdlib.h"3#include"math.h"4//#include<vect......
  • 直播小程序源码,CSS实现移动端横向滚动导航条
    直播小程序源码,CSS实现移动端横向滚动导航条cssHTML代码  <ul>            <li>              <ahref="">1</a>......