微信小程序--基础内容(详解)(一)

news2025/1/22 18:50:56

一、常用标签

1、view 标签

view 标签是一个块级元素,类似于 div(小程序里面没有div标签),里面可以放任何内容或者插值表达式,如下所示:

<view>这是view标签<view>
<view>{{num}}</view>

2、text 标签

text 标签是一个文本标签,行内标签,类似于 span 标签(小程序没有span标签),Tips:可以添加selectable 属性,长按选中,仅 text 标签支持,如下:

<text selectable>这是一段优美的文字</text>

3、scroll-view 标签

scroll-view 标签表示滚动,scroll-x 是水平方向滚动,scroll-y 是垂直方向滚动。
水平方向滚动:

<scroll-view scroll-x class="scroll">你是小可爱你是小可爱你是小可爱你是小可爱
你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱
你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱</scroll-view>

垂直方向滚动:

<scroll-view scroll-y class="scroll">你是小可爱你是小可爱你是小可爱你是小可爱
你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱
你是小可爱你是小可爱你是小可爱你是小可爱你是小可爱</scroll-view>

Tips:wxss 样式书写:

.scroll{
  width: 200rpx;
  height: 200rpx;
  /* 水平方向滚动时,需加上以下一行代码 */
  /* white-space: nowrap; */
}

4、swiper 标签

swiper 标签是轮播图效果,swiper 标签包裹 swiper-item 标签,该标签身上的属性有以下几种:
indicator-dots 小圆点
indicator-color=“black” 未激活小圆点的颜色
indicator-active-color=“white” 已激活小圆点的颜色
autoplay 自动切换
interval=“3000” 切换时间(3000毫秒)
circular 衔接滑动

5、button 标签

button 标签是按钮标签,button 身上有以下几种属性:
type 属性修改按钮类型,有 primary、warn、default
size 属性可以设置按钮的大小,有 mini
plain 镂空效果,无背景色,有边框
实例:

<button type="default">default按钮</button>
<button type="primary">primary按钮</button>
<button type="warn">warn按钮</button>
<button size="mini">小按钮</button>
<button plain>镂空按钮</button>

在这里插入图片描述

6、image 标签

image 标签用来引入图片,可添加 mode 属性,可选值:aspectFit(保持纵横比)
aspectFill(填充,等比例放大)
widthFix(宽不变,高度自适应)
heightFix(高不变,宽度自适应)

<image src="/images/01.png" mode="aspectFill"></image>

7、rich-text 标签

rich-text 标签内部可以嵌套 html 标签,如下所示:

<rich-text nodes="<h1>一级标题</h1>"></rich-text>

在这里插入图片描述
其余可参考官方文档:微信官方文档

二、数据绑定

Mustache 语法 {{ }},又叫插值表达式,用来动态绑定数据。

1、简单绑定

<view> {{ message }} </view>
Page({
  data: {
    message: 'Hello!'
  }
})

2、事件绑定

(1)bindtap

手指触摸后离开触发事件,类似于 click 点击事件。

<view>点击按钮数字 + 1:{{num}}</view>
<!-- 点击事件绑定 -->
<button type="default" bindtap="addNum" data-val="{{10}}">+1</button>
Page({
  data: {
  num:0,
  },
  addNum(){
    this.setData({
      num: this.data.num += 1
    })
  }
})

Tips: 微信小程序的 js 文件中,获取数据使用 this.data.xxx
修改数据,给数据赋新值必须在 this.setData({ }) 内部书写

bindtap 可传递参数,
传参:data-名称= {{}}
接收参数:event.target.dataset.名称

<button type="default" bindtap="getNum" data-val="{{10}}">+1</button>

可以打印出 10

 getNum(e){
    console.log(e.target.dataset.val),
  },

(2)bindinput

文本框输入时触发事件,可以实现数据双向绑定,在小程序内部,没有 v-model 语法糖,可以使用 value 属性和 input 事件实现双向绑定。

<input type="text" value="{{txtVal}}" bindinput="addTxt"/>
<view>{{txtVal}}</view>
Page({
  data: {
  txtVal: '默认值'
  },
  addTxt(e){
    this.setData({
      txtVal: e.detail.value
    })
  }
})

在这里插入图片描述

三、条件渲染

条件渲染相当于 html 里面的 if 语句,在小程序里是这样:
wx:if 还有与之配套的wx:elifwx:else

1、单条件渲染

wx:if 和 wx:else 可以实现显示与隐藏效果:

<button type="primary" wx:if="{{!isCollect}}" bindtap="changeIsCollect">收藏</button>
<button type="warn" wx:else bindtap="changeIsCollect">取消收藏</button>
Page({
  data: {
  isCollect: false
  },
  changeIsCollect(){
    this.setData({
      isCollect: !this.data.isCollect
    })
  }
})  

默认显示收藏按钮
在这里插入图片描述
点击之后,显示取消收藏按钮
在这里插入图片描述
hidden 可实现相同效果,具体如下:

<button type="primary" bindtap="hidden">显示与隐藏</button>
<button hidden="{{hiddenName}}">测试hidden隐藏效果</button>
Page({
  data: {
  hiddenName:false,
  },
  hidden(){
  this.setData({
    hiddenName: !this.data.hiddenName
  })
 }
})

2、多条件渲染

<view wx:if="{{myValue==='a'}}">张三</view>
<view wx:elif="{{myValue==='b'}}">李四</view>
<view wx:elif="{{myValue==='c'}}">王二</view>
<view wx:else>麻子</view>
Page({
  data: {
  myValue: 'b',
  },

因为当前设置的 myvalue 值是 ‘b’ ,所以显示的是李四
在这里插入图片描述

四、列表循环

语法:wx:for 一般搭配 wx:key , key 值一般设置为 id ,如果没有 id ,可设置 index 索引,key 值不设置会有警告 。item 项就是内容,数组和 item 项一般都用Mustache语法{{ }}包裹,可以动态渲染。

1、简单遍历数组

<!-- 列表循环,循环数组 -->
<view wx:for="{{arr1}}" wx:key="index">内容是:{{item}}</view>
Page({
  data: {
  arr1: [10,20,30]
  }
})

在这里插入图片描述

2、遍历二维数组

<!-- 二维数组 -->
<view wx:for="{{arr2}}" wx:key="id">{{item.name}}今年{{item.age}}岁了</view>
Page({
  data: {
    arr2: [
    {id: 1, name: '欧阳', age: 21},
    {id: 2, name: '上官', age: 22},
    {id: 3, name: '司徒', age: 23}
  ],
  }
})

在这里插入图片描述

3、多维数组遍历方式

多维数组渲染的时候,给内部数组加了一个 wx:for-item=“student” , 只是为了增强可读性,加不加都可以,如果不加,可以直接渲染 {{ item }} 即可。

<view wx:for="{{arr3}}" wx:key="id">
{{item.className}}班的学生有:
<text wx:for="{{item.students}}" wx:key="index" wx:for-item="student">{{student}}</text>
</view>
Page({
  data: {
    arr3: [
    {id: 1,
    className: '一班',
    students: ['小花,小草,小林']
    },
    {id: 2,
    className: '二班',
    students: ['叶子,木子,虎子']
    },
    {id: 3,
    className: '三班',
    students: ['洋洋,姗姗,盈盈']
    }
  ]
  }
})

在这里插入图片描述

4、修改数据

修改对象或者数组中的属性:
修改对象数据 [ ’ 对象名 .键名 ’ ]
修改数组数据 [ ’ 数组名[索引] . 键名 ']

<!-- 修改数据 -->
<view>{{obj1.name}}已经{{obj1.age}}岁了,工作是: {{obj1.job}}</view>
<button bindtap="changeData">点击修改数据</button>
Page({
  data: {
    arr2: [
    {id: 1, name: '欧阳', age: 21},
    {id: 2, name: '上官', age: 22}
  ],
   obj1: {
    name: '张三',
    age: 20,
    job: 'web开发'
  }
 },
   changeData(){
   this.setData({
      // 每点击一次,让张三的年龄 + 1
      ['obj1.age']: this.data.obj1.age + 1,
      // 把数组2中欧阳的姓名改成南宫
      ['arr2[0].name']: '南宫'
    })
  },
})

点击按钮之前:
在这里插入图片描述
点击按钮之后:
在这里插入图片描述
时间有限,这些是微信小程序基础入门,后期还会继续更新~~

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

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

相关文章

谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address

快速解决&#xff1a; 最近在测试http服务时&#xff0c;谷歌浏览器报了以下错误 “The request client is not a secure context and the resource is in more-private address space ‘local’”. 从报错信息来看&#xff0c;“不安全的请求方请求了更私有的本地资源” 对于…

API接口开发其实特简单,Python Flask Web 框架教程来了

大家好&#xff0c;日常工作中&#xff0c;无论你是数据工程师、数据挖掘工程师&#xff0c;甚至数据分析人员&#xff0c;都不可避免的与他人进行数据交互&#xff0c;API接口提供数据是最常见的形式。 今天我给大家分享 Python Flask Web 框架教程&#xff0c;共计10个部分&…

Vue面试题你知道多少

✅作者简介&#xff1a;大家好我是hacker707,大家可以叫我hacker&#xff0c;新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;带你玩转Vue &#x1f4ac;推荐一款模拟面试、刷题神器&…

前端401错误 解决方法:响应拦截器

目录 1.该问题出现的原因 2.处理401问题的解决方案原理 3.使用响应拦截器解决问题 1.该问题出现的原因 在前后端分离项目中&#xff0c;最常见的是前端点击登录后&#xff0c;后端返回token字符串&#xff0c;这个token可以看作是一个“令牌”&#xff0c;就比如你去酒店办理…

Vue实战【调整Vue-element-admin中的菜单栏,并添加顶部模块菜单栏】

目录&#x1f31f;前言&#x1f31f;小伙伴们先看&#x1f31f;实现思路&#x1f31f;具体代码&#x1f31f;最后&#x1f31f;前言 因为最近在整合公司的项目&#xff0c;需要把所有系统里的功能集成到一个项目里&#xff0c;这样就导致菜单栏目录会特别的多&#xff0c;不便…

【JavaScript】手撕前端面试题:事件委托 | 判断URL是否合法 | 全排列

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…

【Axure】Axure RP 9下载、安装、授权、汉化

目录一、Axure RP 9 下载二、Axure RP 9 安装三、Axure RP 9 授权四、Axure RP 9 汉化一、Axure RP 9 下载 1、Axure RP 9 下载地址&#xff1a;https://www.axure.com/release-history/rp9 2、其他版本下载地址 ①登录axure官网:https://www.axure.com/ ②拉到最下面找到相关…

很好看的爱心表白代码(动态)

分享几个好看的爱心表白代码❤️爱心代码❤️&#xff08;C语言&#xff09;❤️流动爱心❤️&#xff08;htmlcssjs&#xff09;❤️线条爱心❤️&#xff08;htmlcssjs&#xff09;❤️biu表白爱心❤️&#xff08;htmlcssjs&#xff09;❤️matlab爱心函数❤️&#xff08;需…

Vue3+TS+Vite 入门指南

最近尝试上手 Vue3TSVite&#xff0c;对比起 Vue2 有些不适应&#xff0c;但还是真香~ 上手前先说下 Vue3 的一些变化吧~ Vue3 的变化 Vue3 带来的变化主要有以下几个方面&#xff1a; 使用层面 对比起 Vue2 启动速度快很多&#xff0c;新项目从 1s 升级到不到 500msvite.co…

Element-UI新手学习记录(一)

Layout 布局 通过基础的 24 分栏&#xff0c;迅速简便地创建布局。 span的作用 一行默认24个span&#xff0c;属性放在el-col中决定此元素占据多少span gutter属性 放在el-row中&#xff0c;给各个块之前设置间隔&#xff0c;但是是割的代码块的宽度。 offset属性 放在el…

小程序页面之间数据传递的四种方法

近期再使用小程序开发的时候遇到小程序页面和页面之间的数据传递问题。总结一下大致有以下几种方式实现页面数据传递。 最常见的就是路由传参&#xff0c;使用场景主要是页面汇总的少量数据的传递。以下都以Tarovue示例&#xff0c;原生、react或者uniapp同理&#xff0c;替换…

Pinia(二)了解和使用Store

Store Store 是保存状态(state)和业务逻辑的实体, store 不应该与我们的组件绑定. 换句话说, store 就是全局状态.store 有三个关键概念, 分别是 state, getters 和 actions, 这与 Vue 组件中的 data, computed 和 methods 是相对应的概念. 定义 store 通过 defineStore 函数…

Vue页面路由参数的传递和获取

文章目录1. 通过动态路由参数传递2. 通过query字符串传递3. props 隐式传递vue 页面路由切换时传参的方式有如下几种&#xff1a; 动态路由参数 它隐藏字段信息&#xff0c;相对于来说较安全&#xff0c;同时地址栏中的地址也相对较短 它必须是先定义后使用&#xff0c;一般用…

关于嵌套使用 iFrame 出现 Refused to display in aframe 拒绝连接访问 和 ‘X-Frame-Options‘ to ‘SAMEORIGIN‘ 的解决方案【已解决】

目录问题描述原因分析问题解决总结今天在迁移旧项目时&#xff0c;出现了如下错误提示&#xff1a; Refused to display in a frame because it set X-Frame-Options to SAMEORIGIN问题描述 当前项目是一个生产环境正常运行的项目&#xff0c;由于我们要迁移服务器并且部署 k…

Pro2:修改div块的颜色

什么是JavaScript&#xff1f;实现目标实现代码实现效果实现方法&#x1f49b;作者主页&#xff1a;静Yu &#x1f9e1;简介&#xff1a;CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家&#xff0c;前端知识交流社区创建者 &#x1f49b;社区地址&#xff1a;前端知识交…

html里面使用axios发送请求

html里面使用axios 效果展示&#xff1a; 代码展示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name…

Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本

前期回顾 开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用_js斗地主_0.活在风浪里的博客-CSDN博客JS 实现 斗地主网页游戏https://blog.csdn.net/m0_57904695/article/details/128982118?spm1001.2014.3001.5501 通用版后台管理系统&#xff0c;如果…

前端vben框架中表格table问题汇总

1.template中的代码 <BasicTable register"registerTable" :canResize"false"><!-- 表格左边的插槽 --><template #tableTitle><div class"btn-group"><a-buttonghosttype"primary"preIcon"ant-desi…

【vue】vue脚手架以及vite介绍

内容一、VUECLI二、关于cli的原理三、vite四、使用vite五、vite处理css、less、postcss、ts六、vite对vue的支持&#xff1a;七、预打包&#xff1a;八、关于vite打包九、真实项目中不会一直使用npx的十、ESBuild十一、vite脚手架&#xff0c;一、VUECLI 先安装这个工具&#…

基于AI分词模型,构建一个简陋的Web应用

文章目录前言1. 效果展示2. 应用设计3. 实现3.1. lac分词模型的服务化部署3.2 使用Flask构建app4. 小结前言 内容纯属个人经验&#xff0c;若有不当或错误之处&#xff0c;还请见谅&#xff0c;欢迎指出。 文中大致介绍了&#xff0c;如何快捷地使用PaddleHub服务化部署一个简…