


Comment développer des petits programmes avec Taro + Vue3 ? (pratique)
Comment utiliser Taro3 + Vue3 pour développer des petits programmes ? L'article suivant vous présentera comment utiliser Taro3 + Vue3 pour développer l'applet WeChat. J'espère qu'il vous sera utile !
L'applet WeChat est une application qui utilise WeChat comme environnement d'exploitation. Son essence est l'application de la technologie Hybrid
est une application mobile en mode mixte, elle est donc similaire à. H5
code> est similaire, mais possède beaucoup plus de fonctionnalités natives que H5, telles que l'appel d'informations de localisation et de caméras. Hybrid
技术的应用,Hybrid App 即混合模式移动应用,因此与 H5
类似,但又比 H5 拥有很多原生的能力,例如调用位置信息和摄像头等。
小程序的开发方式与 H5 十分相似,用的也是 JavaScript
、HTML
、CSS
语言。
因此,小程序开发可以说是一名前端工程师必须要掌握的技能。
原生小程序开发有一定的学习成本,现如今市面上有很多开发小程序的第三方多端框架,如果不是追求极致性能和稳定,还是不要用原生小程序开发了,开发效率太低。
第三方多端框架中,taro
和 uni-app
的使用度是最广的,一般来说,做技术选型时,团队用 react
,就用 taro,团队用 vue
,就用 uni-app,两者之间没有什么优劣之分,都挺好用的。
但很多开发者可能不知道,taro3.0 以上版本是支持使用 vue 的,本篇文章就来介绍一下如何使用 Taro3 + Vue3 开发微信小程序。
我根据网上的资料完成了本项目的搭建之后,用本项目开发过一个小程序,那种开发体验真的是超越了我以往开发过的所有项目,非常丝滑(可能是我第一次写 vue3 的 script setup 吧,用起来确实很舒服)。
可直接访问本项目 github 地址 clone 使用。
目标功能
- 集成 vue3,使用
script setup
语法开发 - 集成
Typescript
La méthode de développement des petits programmes est très similaire à H5, et ils utilisent également les langages - Par conséquent, le développement de petits programmes peut être considéré comme une compétence qu'un ingénieur front-end doit maîtriser.
- Le développement de mini-programmes natifs comporte un certain coût d'apprentissage. De nos jours, il existe de nombreux frameworks multiterminaux tiers sur le marché pour développer des mini-programmes. Si vous ne recherchez pas des performances et une stabilité optimales, il est préférable de ne pas développer. Les mini-programmes natifs sont trop faibles.
- Parmi les frameworks multiterminaux tiers,
taro
etuni-app
sont les plus largement utilisés. De manière générale, lors de la sélection de la technologie, les équipes utilisent. Pour réagir
, j'utilise taro, pour l'équipe j'utilisevue
, et j'utilise uni-app Il n'y a pas de différence entre les deux, ils sont tous les deux très simples à utiliser. - Mais de nombreux développeurs ne savent peut-être pas que taro3.0 ou supérieur prend en charge l'utilisation de vue. Cet article explique comment utiliser Taro3 + Vue3 pour développer des applets WeChat.
- Après avoir terminé la construction de ce projet sur la base des informations sur Internet, j'ai développé un petit programme utilisant ce projet. L'expérience de développement a vraiment dépassé tous les projets que j'ai développés dans le passé. C'est très fluide (peut-être mon premier. Écrivons le script de configuration de vue3 pour la première fois, c'est vraiment confortable à utiliser).
JavaScript
, HTML
et CSS
. Vous pouvez accéder directement à ce projet adresse github
utilisation de clones.- Intégrer vue3, utiliser le développement de la syntaxe
script setup
- Intégrer
Typescript
- Inspection et formatage du code Optimisée
- gestion globale de l'état
Fonction cible
encapsulation de style, compatible avec l'écran notch et d'autres problèmes de styleencapsulation de la méthode httppile technologique principale
Taro3TypeScriptPiniaLorsque vue3 a été publié pour la première fois, mon enthousiasme pour l'apprentissage de vue3 a été directement découragé en raison du manque de support de framework d'interface utilisateur approprié. Jusqu'à présent, d'excellents frameworks tels que
quasar,
element-plus🎜, 🎜ant-design-vue🎜 et d'autres excellents frameworks ont successivement pris en charge vue3, et de nombreux projets vue3 ont été utilisés dans des environnements de production, pour constater que tout le monde est j'utilise vraiment vue3 . 🎜🎜Par exemple, l'équipe projet à côté de notre entreprise a utilisé vue3 pour le projet de refactoring. Ce n'est qu'à ce moment-là que j'ai réalisé que j'étais un peu en retard dans l'apprentissage de vue3 (astuces : le front-end est vraiment trop compliqué) 🎜🎜🎜NutUI🎜. est une bibliothèque de composants mobiles de style JD, qui prend en charge l'utilisation du langage Vue pour écrire des applications pouvant être utilisées sur des plates-formes de programmes H5 et mini, aidant ainsi les développeurs à améliorer l'efficacité et l'expérience de développement. 🎜🎜Je connais NutUI grâce à la 🎜Documentation Taro🎜 Taro recommande officiellement d'utiliser NutUI pour le développement. Ils semblent tous appartenir à la même équipe de développement de JD.com. J'ai commencé à l'utiliser avec la mentalité de l'essayer et avec l'expérience. c'est pas mal. 🎜🎜🎜Pinia🎜 est une bibliothèque de gestion d'état pour Vue, similaire à Vuex, c'est une autre solution de gestion d'état pour Vue, prenant en charge Vue2 et Vue3. 🎜🎜La première fois que je suis entré en contact avec un outil de gestion de statut front-end, c'était un système de gestion back-end de l'entreprise lorsque j'étais stagiaire. Il utilisait dva. C'était une torture et m'a presque persuadé d'arrêter. Je m'en suis progressivement familiarisé, mais que j'utilise redux ou vuex, j'ai toujours du mal à écrire. 🎜这次尝试使用 Pinia,用起来确实很舒服,符合直觉,易于学习 ,有点类似于 recoil,但没有 recoil 那么多的概念和 API,主体非常精简,极易上手。Pinia 快速入门
vscode 需安装插件
- Eslint
- Prettier
- Volar
与vetur
相同,volar
是一个针对 vue 的 vscode 插件,不过与 vetur 不同的是,volar 提供了更为强大的功能。
搭建项目架构
初始化项目
初始化项目之前,需安装 taro,请参考 Taro 文档,完成 taro 安装
使用命令创建模板项目:
taro init myApp
安装 cli 用来执行构建等操作,之后启动项目,会生成一个 dist 目录
yarn add @tarojs/cli yarn dev:weapp
打开微信开发工具 工程目录需要指向构建出来的 dist 文件
Hello world 出现,项目成功跑起来了!
设置代码规范
- 代码规范 ESlint
- 代码格式化 Prettier
- 提交前检查 husky
个人认为,eslint + prettier 足以应付大部分前端代码规范问题了,且配置起来很简单,有特殊需求也可继续配置。
安装依赖
yarn add @vue/eslint-config-prettier @vue/eslint-config-typescript eslint-plugin-prettier vue-tsc husky -D
设置代码规范和格式化规则
.eslintrc.js
module.exports = { root: true, env: { node: true, 'vue/setup-compiler-macros': true }, extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/prettier', '@vue/typescript'], parserOptions: { parser: '@typescript-eslint/parser' }, rules: { 'prettier/prettier': [ 'error', { singleQuote: true, semi: false, trailingComma: 'none', arrowParens: 'avoid', printWidth: 100 } ], 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' } }
.prettierrc
{ "tabWidth": 2, "singleQuote": true, "semi": false, "trailingComma": "none", "arrowParens": "avoid", "endOfLine": "auto", "printWidth": 100 }
在 package.json 中 script 添加 Ts 检查命令和 Eslint 检查命令
"scripts":{ "tsc": "vue-tsc --noEmit --skipLibCheck", "lint": "eslint --ext .vue --ext .js --ext .ts src/" }
添加 husky 触发 Git 钩子,代码提交前检查
npx husky install
编辑 pre-commit 执行 Eslint 检查和 Ts 检查
#!/bin/sh . "$(dirname "$0")/_/husky.sh" echo "---eslint start---" npm run lint echo "---eslint end---" echo "---ts lint start---" npm run tsc echo "---ts lint end---"
至此,项目的代码规范和格式规范配置完毕,多人协作也不是问题了。
引入 NutUI
yarn add @nutui/nutui-taro
在 .babelrc
或 babel.config.js
中添加配置:
module.exports = { // ... plugins: [ [ 'import', { libraryName: '@nutui/nutui', libraryDirectory: 'dist/packages/_es', camel2DashComponentName: false }, 'nutui3-vue' ], [ 'import', { libraryName: '@nutui/nutui-taro', libraryDirectory: 'dist/packages/_es', camel2DashComponentName: false }, 'nutui3-taro' ] ] }
按需引入,安装插件 babel-plugin-import
yarn add babel-plugin-import -D
样式处理 因为 nutui 的设计稿是 375 的 所以将框架的设计尺寸调整为 375
项目配置文件 config/index.js 中配置:
designWidth: 375
app.ts
import { createApp } from 'vue' import { Button } from '@nutui/nutui-taro' const app = createApp() app.use(Button)
index.vue 中,nut-button 组件直接在 template 中写,不用再引入
<template> <view class="index"> <text>{{ msg }}</text> <nut-button type="primary">主要按钮</nut-button> </view> </template>
说实话,配置起来还是有点麻烦,不过按照官网文档说明来配也没有踩坑,还行。
小程序分包配置
小程序主包超过 2M,就无法真机预览了,为了提前做好准备在一开始就进行分包处理。比如下面这个小程序的配置,分了四个包。
app.config.ts
pages: ['pages/create/index', 'pages/find/index', 'pages/my/index'], subpackages: [ { root: 'pages/featureA', pages: ['index/index'] }, { root: 'pagesSub/search', pages: ['index'] }, { root: 'pagesSub/my', pages: ['detail/index', 'about/index'] }, { root: 'pagesSub/book', pages: ['detail/index', 'person/list/index', 'person/detail/index'] } ],
可以在小程序开发工具编辑器里的代码依赖分析,查看主包和分包的大小
使用 script setup 语法封装小程序页面生命周期方法
hooks/life.ts
import { getCurrentInstance } from '@tarojs/taro' import { onMounted } from 'vue' const Current = getCurrentInstance() export function useDidShow(callback) { onMounted(callback) Current?.page?.onShow && (Current.page.onShow = callback) } export function usePullDownRefresh(callback) { Current?.page?.onPullDownRefresh && (Current.page.onPullDownRefresh = callback) }
使用
import { useDidShow } from '@/hooks/life' useDidShow(() => { // console.log('onShow') })
安装 Pinia 进行状态管理
yarn add pinia yarn add taro-plugin-pinia
项目配置文件 config/index.js 中配置:
plugins: ['taro-plugin-pinia']
以管理用户信息和用户登录状态为例,实现一个用户登录功能
需要处理的文件代码如下:
stores/auth.ts
import { defineStore } from 'pinia' interface UserInfoProp { nickName: string avatarUrl: string } const useAuth = defineStore({ id: 'authInfo', state: () => ({ userInfo: { nickName: '', avatarUrl: '' }, isLogin: false }), actions: { login() { this.isLogin = true }, logout() { this.isLogin = false }, setUserInfo(userInfo: UserInfoProp) { this.userInfo = userInfo } } }) export { useAuth }
stores/index.ts
import { createPinia } from 'pinia' import { useAuth } from './auth' export const store = createPinia() const storeObj = { auth: useAuth } // 封装成useStore的形式,这样一看引用就知道是store的数据 export function useStore(key: string) { return storeObj[key]() }
个人中心 index.vue
<template> <main v-if="isLogin"> <user-info /> </main> <main v-else> <nut-button type="primary" @click="handleLogin">微信一键登录</nut-button> </main> </template> <script setup> import Taro from '@tarojs/taro' import { computed } from 'vue' import { useStore } from '@/stores' import UserInfo from './userInfo.vue' const auth = useStore('auth') const isLogin = computed(() => auth.isLogin) const handleLogin = () => { setTimeout(() => { // 模拟后端请求得到token和userInfo Taro.setStorageSync('token', 'xxxx') auth.setUserInfo({ nickName: '林', avatarUrl: 'https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png' }) auth.login() }, 500) } </script> </script>
userInfo 组件
<template> <article> <nut-avatar size="large" :icon="userInfo.avatarUrl"></nut-avatar> <span class="ellipsis name">{{ userInfo.nickName }}</span> </article> </template> <script setup> import Taro from '@tarojs/taro' import { computed } from 'vue' import { useStore } from '@/stores' const auth = useStore('auth') const userInfo = computed(() => auth.userInfo) </script>
总的来说, pinia 写起来是非常简洁的,这种类 react hooks 的写法,我是非常喜欢的
请求方法封装
http.ts
// 封装axios的请求,返回重新封装的数据格式 // 对错误的统一处理 import { HttpResponse } from '@/common/interface' import Taro from '@tarojs/taro' import publicConfig from '@/config/index' import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, Canceler } from 'axios-miniprogram' import errorHandle from '../common/errorHandle' const CancelToken = axios.CancelToken class HttpRequest { private baseUrl: string private pending: Record<string, Canceler> constructor(baseUrl: string) { this.baseUrl = baseUrl this.pending = {} } // 获取axios配置 getInsideConfig() { const config = { baseURL: this.baseUrl, headers: { 'Content-Type': 'application/json;charset=utf-8' }, timeout: 10000 } return config } removePending(key: string, isRequest = false) { if (this.pending[key] && isRequest) { this.pending[key]('取消重复请求') } delete this.pending[key] } // 设定拦截器 interceptors(instance: AxiosInstance) { instance.interceptors.request.use( config => { console.log('config :>> ', config) let isPublic = false publicConfig.publicPath.map(path => { isPublic = isPublic || path.test(config.url || '') }) const token = Taro.getStorageSync('token') if (!isPublic && token) { config.headers.Authorization = 'Bearer ' + token } const key = config.url + '&' + config.method this.removePending(key, true) config.cancelToken = new CancelToken(c => { this.pending[key] = c }) return config }, err => { errorHandle(err) return Promise.reject(err) } ) // 响应请求的拦截器 instance.interceptors.response.use( res => { const key = res.config.url + '&' + res.config.method this.removePending(key) if (res.status === 200) { return Promise.resolve(res.data) } else { return Promise.reject(res) } }, err => { errorHandle(err) return Promise.reject(err) } ) } // 创建实例 request(options: AxiosRequestConfig) { const instance = axios.create() const newOptions = Object.assign(this.getInsideConfig(), options) this.interceptors(instance) return instance(newOptions) } get(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse> | Promise<HttpResponse> { const options = Object.assign( { method: 'get', url: url }, config ) return this.request(options) } post(url: string, data?: unknown): Promise<AxiosResponse> | Promise<HttpResponse> { return this.request({ method: 'post', url: url, data: data }) } } export default HttpRequest
request.ts
import HttpRequest from './http' import config from '@/config/index' const baseUrl = process.env.NODE_ENV === 'development' ? config.baseUrl.dev : config.baseUrl.pro const request = new HttpRequest(baseUrl) export default request
以获取图书列表和图书详情为例
apis/book.ts
import request from '../request' export function getBookList() { return request.get('books/getBookList') } export function getBookDetail(id: number) { return request.post('books/getBookDetail', { id }) }
请求方法封装还是用到了 axios
,只是用的是 axios-miniprogram
,写法和 web 端基本一致,http.js 文件引用的一些模块太多,本文没有列出来,可以直接访问本项目 github 地址查看。
样式封装
iPhoneX 底部横线适配
assets/styles/common.scss
.safe-area-bottom { padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); }
刘海儿屏适配
assets/styles/hairline.scss
@mixin hairline-common() { position: absolute; box-sizing: border-box; content: ' '; pointer-events: none; } @mixin hairline() { @include hairline-common(); top: -50%; right: -50%; bottom: -50%; left: -50%; border: 0 solid #eaeaea; transform: scale(0.5); } @mixin hairline-top($color, $left: 0, $right: 0) { @include hairline-common(); top: 0; right: $right; left: $left; border-top: 1px solid $color; transform: scaleY(0.5); } @mixin hairline-bottom($color, $left: 0, $right: 0) { @include hairline-common(); right: $right; bottom: 0; left: $left; border-bottom: 1px solid $color; transform: scaleY(0.5); } [class*='van-hairline'] { &::after { @include hairline(); } } .van-hairline { &, &--top, &--left, &--right, &--bottom, &--surround, &--top-bottom { position: relative; } &--top::after { border-top-width: 1px; } &--left::after { border-left-width: 1px; } &--right::after { border-right-width: 1px; } &--bottom::after { border-bottom-width: 1px; } &, &-unset { &--top-bottom::after { border-width: 1px 0; } } &--surround::after { border-width: 1px; } }
多行文字省略
assets/styles/ellipsis.scss
@mixin multi-ellipsis($lines) { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: $lines; -webkit-box-orient: vertical; } @mixin ellipsis() { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .ellipsis { @include ellipsis(); } .multi-ellipsis--l2 { @include multi-ellipsis(2); } .multi-ellipsis--l3 { @include multi-ellipsis(3); }
总结
至此,终于完成了 Taro + Vue3 的项目搭建,强烈建议直接访问项目 github 地址 clone 使用,有一些配置细节本文无法一一列举,就在项目中去发掘吧!
如果我的文章能帮助到你,那将是我的荣幸!
【相关学习推荐:小程序开发教程】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le mini programme WeChat officiel de Xianyu a été lancé discrètement. Dans le mini programme, vous pouvez publier des messages privés pour communiquer avec les acheteurs/vendeurs, afficher les informations personnelles et les commandes, rechercher des articles, etc. Si vous êtes curieux, qu'est-ce que le mini Xianyu WeChat. programme appelé ? Jetons un coup d'oeil. Quel est le nom de l'applet Xianyu WeChat ? Réponse : Xianyu, transactions inutilisées, ventes d'occasion, valorisations et recyclage. 1. Dans le mini programme, vous pouvez publier des messages inactifs, communiquer avec des acheteurs/vendeurs via des messages privés, afficher des informations personnelles et des commandes, rechercher des articles spécifiés, etc. 2. Sur la page du mini programme, il y a une page d'accueil, à proximité, publier des messages inactifs et les miens 5 fonctions ; 3. Si vous souhaitez l'utiliser, vous devez activer le paiement WeChat avant d'acheter ;

L'applet WeChat implémente la fonction de téléchargement d'images Avec le développement de l'Internet mobile, l'applet WeChat est devenue un élément indispensable dans la vie des gens. Les mini-programmes WeChat fournissent non seulement une multitude de scénarios d'application, mais prennent également en charge les fonctions définies par les développeurs, notamment les fonctions de téléchargement d'images. Cet article présentera comment implémenter la fonction de téléchargement d'images dans l'applet WeChat et fournira des exemples de code spécifiques. 1. Travaux préparatoires Avant de commencer à écrire du code, nous devons télécharger et installer les outils de développement WeChat et nous inscrire en tant que développeur WeChat. En même temps, vous devez également comprendre WeChat

Pour implémenter l'effet de menu déroulant dans les mini-programmes WeChat, des exemples de code spécifiques sont nécessaires. Avec la popularité de l'Internet mobile, les mini-programmes WeChat sont devenus une partie importante du développement d'Internet, et de plus en plus de gens ont commencé à y prêter attention et à y prêter attention. utilisez les mini-programmes WeChat. Le développement de mini-programmes WeChat est plus simple et plus rapide que le développement d'applications traditionnelles, mais il nécessite également la maîtrise de certaines compétences en développement. Dans le développement des mini-programmes WeChat, les menus déroulants sont un composant courant de l'interface utilisateur, permettant une meilleure expérience utilisateur. Cet article présentera en détail comment implémenter l'effet de menu déroulant dans l'applet WeChat et fournira des informations pratiques.

Implémentation d'effets de filtre d'image dans les mini-programmes WeChat Avec la popularité des applications de médias sociaux, les gens aiment de plus en plus appliquer des effets de filtre aux photos pour améliorer l'effet artistique et l'attractivité des photos. Les effets de filtre d'image peuvent également être implémentés dans les mini-programmes WeChat, offrant aux utilisateurs des fonctions de retouche photo plus intéressantes et créatives. Cet article expliquera comment implémenter des effets de filtre d'image dans les mini-programmes WeChat et fournira des exemples de code spécifiques. Tout d’abord, nous devons utiliser le composant canevas dans l’applet WeChat pour charger et modifier des images. Le composant canevas peut être utilisé sur la page

Utilisez l'applet WeChat pour obtenir un effet de commutation de carrousel. L'applet WeChat est une application légère avec des caractéristiques de développement et d'utilisation simples et efficaces. Dans les mini-programmes WeChat, il est courant d'obtenir des effets de commutation de carrousel. Cet article explique comment utiliser l'applet WeChat pour obtenir l'effet de changement de carrousel et donne des exemples de code spécifiques. Tout d’abord, ajoutez un composant carrousel au fichier d’échange de l’applet WeChat. Par exemple, vous pouvez utiliser la balise <swiper> pour obtenir l'effet de commutation du carrousel. Dans ce composant, vous pouvez passer b

Le mini-programme officiel WeChat de Xianyu a été lancé discrètement. Il offre aux utilisateurs une plate-forme pratique qui vous permet de publier et d'échanger facilement des objets inutilisés. Dans le mini programme, vous pouvez communiquer avec des acheteurs ou des vendeurs via des messages privés, afficher des informations personnelles et des commandes et rechercher les articles que vous souhaitez. Alors, comment s'appelle exactement Xianyu dans le mini-programme WeChat ? Ce guide didacticiel vous le présentera en détail. Les utilisateurs qui souhaitent savoir, veuillez suivre cet article et continuer à lire ! Quel est le nom de l'applet Xianyu WeChat ? Réponse : Xianyu, transactions inutilisées, ventes d'occasion, valorisations et recyclage. 1. Dans le mini programme, vous pouvez publier des messages inactifs, communiquer avec des acheteurs/vendeurs via des messages privés, afficher des informations personnelles et des commandes, rechercher des articles spécifiés, etc. 2. Sur la page du mini programme, il y a une page d'accueil, à proximité, publier des messages inactifs et les miens 5 fonctions ;

Comment utiliser PHP pour développer la fonction de transaction d'occasion de l'applet WeChat ? En tant que plate-forme de développement d'applications mobiles populaire, l'applet WeChat est utilisée par de plus en plus de développeurs. Dans les mini-programmes WeChat, les transactions de seconde main constituent une exigence fonctionnelle courante. Cet article expliquera comment utiliser PHP pour développer la fonction de transaction secondaire de l'applet WeChat et fournira des exemples de code spécifiques. 1. Travail de préparation Avant de commencer le développement, vous devez vous assurer que les conditions suivantes sont remplies : l'environnement de développement de l'applet WeChat a été configuré, y compris l'enregistrement de l'AppID de l'applet et sa configuration en arrière-plan de l'applet.

Pour implémenter l'effet de rotation d'image dans WeChat Mini Program, des exemples de code spécifiques sont nécessaires. WeChat Mini Program est une application légère qui offre aux utilisateurs des fonctions riches et une bonne expérience utilisateur. Dans les mini-programmes, les développeurs peuvent utiliser divers composants et API pour obtenir divers effets. Parmi eux, l'effet de rotation d'image est un effet d'animation courant qui peut ajouter de l'intérêt et des effets visuels au mini-programme. Pour obtenir des effets de rotation d'image dans les mini-programmes WeChat, vous devez utiliser l'API d'animation fournie par le mini-programme. Ce qui suit est un exemple de code spécifique qui montre comment
