微信小程序入门教程

基本结构

快捷键

image-20221004193914390

主目录文件

img

app.json

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}


# sitemapLocation的作用是指定位置,和主目录平级sitemap.json

image-20221004090558074

导航栏的颜色

  • image-20221005102740172

tabBar配置,foot

  • 这里路径不允许使用 ./ 开头。
{
  "windows": {
    ...
  },
  "tabBar": {
    "color": "#909192",
    "selectedColor": "#0600B8",
    "list": [{
      "pagePath": "pages/home/home",
      "text": "首页",
      "iconPath": "images/bar/bar1_1.png",
      "selectedIconPath": "images/bar/bar1.png"
    },{
      "pagePath": "pages/menu/menu",
      "text": "菜单",
      "iconPath": "images/bar/bar2_2.png",
      "selectedIconPath": "images/bar/bar2.png"
    },{
      "pagePath": "pages/new/new",
      "text": "新品",
      "iconPath": "images/bar/bar3_3.png",
      "selectedIconPath": "images/bar/bar3.png"
    },{
      "pagePath": "pages/kefu/kefu",
      "text": "小二",
      "iconPath": "images/bar/bar4_4.png",
      "selectedIconPath": "images/bar/bar4.png"
    }]
  }
}

  • 下面的导航栏

image-20221005103630621

页面的配置

官网: https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html#配置项

image-20221005152440558

project.config.json

image-20221004091151988

sitemap.json

  • 作用是能否被索引

image-20221004091308525

页面.json

  • 页面的会覆盖全局的

image-20221004091534887

新建 page

  • 里面添加路径,保存自动新建
  • 首页看 pages 里面的第一个为首页

image-20221004091941904

标签

WXML

  • 和 html 的作用差不多
  • 支持 vue 的绑定

image-20221004092225419

WXSS

  • 提供了全局样式
  • 新增 xpr ,自动进行换算

image-20221004092458933

js

image-20221004092700750

宿主环境

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

包含的内容是:

  1. 通信模型
  2. 运行机制
  3. 组件
  4. API

image-20221004092815463

通信的主体

image-20221004093957385

通信模型

image-20221004094032848

小程序组件

image-20221004095601729

image-20221004150507560

语法

事件

常用事件

image-20221004192535628

  • event 的方法
    • target 是触发的源组件,例如冒泡事件的开始

image-20221004192712641

image-20221004193333550

为 data 数据赋值

  btnTap(e) {
    this.setData(
      {
        count: this.data.count+1
      })
  },

事件传参

  • 不能和 vue 一样传参

image-20221004194507413

使用data-info={{参数}} 传参,不加{{}}是string类型的,不是int

image-20221004194714065

mustache语法

<view>{{msg}}</view>
  • 与 vue 不一样
  • 这里跟vue做个区别,vue中规定组件内data必须是函数,而小程序不用,使用一个对象表示即可。

image-20221005104121608

wx:for

官网位置:https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/list.html#block wx:for

block 标签:

并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。

 <view>
    <view wx:for="{{arr}}" wx:key="*this" wx:for-item="items">{{items}}</view>
  </view>

  <!-- 方法2 -->
  <view class="box">
    <block wx:for="{{arr}}" wx:key="*this">
      <view>{{item}}</view>
    </block>
  </view>
Page({
  data: {
    arr: ['张三', '李四', '王五']
  }
})

hidden 和 wx:if

  • 区别和用法
因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。

同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。

相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。

一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。
  • hidden
<view hidden="{{ifShow}}">显示或隐藏</view>
Page({
  data: {
    ifShow: false	// 由于hidden代表一种否定(或称:取反),所以这里为false,上面的view标签才能显示
  }
})
  • wx-if
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>

结论:

hidden 属性用于频繁切换,切换较少时,建议使用 wx:if

模板

  • 和 vue 的插槽差不多

image-20221005112841610

WXS 语法

image-20221005144900909

  • require 的使用
// /pages/tools.wxs

var foo = "'hello world' from tools.wxs";
var bar = function (d) {
  return d;
}
module.exports = {
  FOO: foo,
  bar: bar,
};
module.exports.msg = "some msg";

// /pages/logic.wxs

var tools = require("./tools.wxs");

console.log(tools.FOO);
console.log(tools.bar("logic.wxs"));
console.log(tools.msg);

组件使用

参考: http://codesohigh.com/subject/wechat/base.html#十五、组件化开发【重点】

父传子

  • 父的 wxml
<product-block showArr="{{showArr}}" />

# 上面的 showArr 是定义在父的数据类型
  • 子组件的 js
Component({
  // properties用于接收传值,类似于vue中的props
  properties: {
    showArr: {
      // 设置数据类型
      type: Array,
 			// 设定初始值(即默认值)
      value: [{imgSrc: "/images/home/newPro1.jpg", imgTxt: "卡布奇诺"}]
    }
  }
})

实战

引入 vant

  1. 右键微信开发者工具,打开 cmd

  2. # 初始化项目
    npm init -y
    # 安装
    npm i @vant/weapp@1.3.3 -S --productionapL
    
  3. 打开微信开发者工具,打开工具--->构建 npm

定义 css 变量

  • 提供 css 的可读性
-- 定义变量
var 使用变量

image-20221007210216881

官网: 定制主题 - Vant Weapp (gitee.io)

image-20221007210936939

page{
  --button-danger-background-color: #000000;
}

image-20221007211239943

全局数据共享

image-20221008154731756

posted @ 2022-10-27 22:23  雨同我  阅读(222)  评论(0编辑  收藏  举报