当前位置: 首页 > news >正文

Taro基础知识学习

一、安装及使用

CLI工具安装

需要使用 npm 或者 yarn 全局安装 @tarojs/cli

//使用 npm 安装 CLI
npm install -g @tarojs/cli//使用 yarn 安装 CLI
yarn global add @tarojs/cli//使用 cnpm 安装 CLI
cnpm install -g @tarojs/cli//使用npm info查看Taro的版本信息
npm info @tarojs/cli

初始化项目

taro init 【项目名】

安装依赖

//进入项目所在文件夹
cd [项目名]//使用 yarn 安装依赖
yarn//使用 npm 安装依赖
npm install//使用 pnpm 安装依赖
pnpm install

在微信小程序端运行程序

//使用yarn
yarn dev:weapp//使用npm
npm run dev:weapp

 项目目录

├── dist                                编译结果目录
├── config                            配置目录
   ├── dev.js                         开发时配置
   ├── index.js                      默认配置
   └── prod.js                       打包时配置
├── src                                源码目录
    ├── pages                       页面文件目录
       ├── index                      index页面目录
       ├── index.js                  index页面逻辑
       └── index.css               index页面样式
    ├── app.css                    项目总通用样式
    └── app.js                       项目入口文件
└── package.json                项目配置文件

└──.editorconfig                 编辑器格式化

└──.eslintrc                        Eslint配置

└──.gitignore                      配置不上传的文件,不进行版本管理

└──yarn.lock                       锁定版本

二、配置页面路由

在【app.config.ts】中配置页面路由

export default defineAppConfig({pages: [//新加入的页面'pages/hhx/index','pages/index/index',],window: {backgroundTextStyle: 'light',navigationBarBackgroundColor: '#fff',navigationBarTitleText: 'WeChat',navigationBarTextStyle: 'black'}
})

【子组件的编写与传值】

新建页面【children.jsx】

import { View, Text } from '@tarojs/components'function Child(props) {         //props参数接收父组件传递过来的数据return (<View><Text>Child.props:{props.userName}</Text></View>)
}//导出组件
export default Child

在父组件中引入,即可使用子组件【index.jsx】

import React, { useState } from 'react'
import { View, Text } from '@tarojs/components'
import { useLoad, } from '@tarojs/taro'
import Child from './children'
import './index.less'export default function Index () {useLoad(() => {console.log('Page loaded.')})const msg = '早安,世界!'const [ userName ] = useState('hhx')return (<View className='index'><Text> {msg} </Text><Child /><Text> {userName} </Text><Child userName={userName} /></View>)
}

路由

taro的路由是写在【app.config.js】/【app.config.ts】

export default defineAppConfig({pages: [                                                        // 页面路由'pages/index/index','pages/order/order',],window: {                                                       // 窗口backgroundTextStyle: 'light',navigationBarBackgroundColor: '#fff',navigationBarTitleText: '订单',navigationBarTextStyle: 'black'},tabBar: {                                                       // 底部导航栏color: '#999',selectedColor: '#333',backgroundColor: '#fff',borderStyle: 'white',list: [{pagePath: 'pages/index/index',                             // 页面路径text: '首页',                                              // 文字iconPath: 'assets/images/index-unselected.png',            // 未选中图标selectedIconPath: 'assets/images/index-selected.png'       // 选中图标},{pagePath: 'pages/order/order',text: '订单',iconPath: 'assets/images/order-unselected.png',selectedIconPath: 'assets/images/order-selected.png'}] }
})

静态资源引入

【工具的引入】

//写工具函数
export function print1(){console.log('这是个打印机!')
}export function print2(){console.log('这是个复读机!')
}

在页面中引用工具

import { print1, print2 } from '../../Tools'//这里工具是函数,需要用{}进行包裹,不是组件,组件不需要{}包裹

【图片的引入】

//先定义后续要使用的图片的名字,因为后续编译之后,图片的路径会发生变化,所以后续使用图片要用图片的名字import {Image} from '@tarojs/components'
import 【图片名】 from '图片地址'//在后续函数中,使用<Image />标签进行使用
<Image src={图片名} />

路由跳转

路由跳转

naviagateTo('pages/blogs/blogs')           小程序、h5、react-nactive都支持的跳转方式

redirectTo('pages/blogs/blogs')               不记录上一页,支持三端

switchTab('pages/blogs/blogs')              支持三端,要使用switchTab跳转,需要在app.json

                                                                 中配置tabBar

navigateBack()                                      返回上一页,支持三端

reLaunch('pages/blogs/blogs')              关闭当前页面,重新打开一个新页面,支持三端

getCurrentPages()                                获取当前页面栈,可以用于页面返回,不支持H5

具体实践

//定义路由跳转函数const goIndex1 = () => {Taro.navigateTo({ url: '/pages/index/index'})
}//在按钮中使用路由跳转函数<Button onClick={goIndex1}>返回首页</Button>

【运算符】

taro中不支持if else语句,需要使用三元运算符、短路运算符进行替代

三元运算符

        {变量===条件?值1:值2}

短路运算符

        {变量===条件 && 值1 || 值2}

【Taro Hooks】

在 Taro 中使用 Hooks API 很简单,Taro 的专有 Hooks(例如 usePageScrolluseReachBottom)从 @tarojs/taro 中引入,框架自己的 Hooks (例如 useEffectuseState)从对应的框架引入

import { usePageScroll, useReachBottom } from '@tarojs/taro' // Taro 专有 Hooks
import { useState, useEffect } from 'react' // 框架 Hooks (基础 Hooks)
//onLaunch 生命周期钩子 等同于 App的入口useLaunch(() => {console.log('onLaunch')
})
//等同于页面的 onUnload 生命周期钩子useUnload(() => {console.log('onUnload')
})

相关文章:

Taro基础知识学习

一、安装及使用 CLI工具安装 需要使用 npm 或者 yarn 全局安装 tarojs/cli //使用 npm 安装 CLI npm install -g tarojs/cli//使用 yarn 安装 CLI yarn global add tarojs/cli//使用 cnpm 安装 CLI cnpm install -g tarojs/cli//使用npm info查看Taro的版本信息 npm info ta…...

浮点型在内存中的存储

前言 在上一期中我们讲到了有关于整型在内存中的存储&#xff0c;新朋友可以点开&#x1f517;了解一下&#xff0c;那这一期中我们将讲到的浮点数是不是存储方式和整型一致呢&#xff1f; 一、浮点数在内存中的存储 为了探究这个问题我们先来看一段代码 #include<stdio…...

微信小程序之behaviors

目录 概括 Demo演示 进阶演示 1. 若具有同名的属性或方法 2. 若有同名的数据 3. 若有同名的生命周期函数 应用场景 最后 属性&方法 组件中使用 代码示例&#xff1a; 同名字段的覆盖和组合规则 概括 一句话总结: behaviors是用于组件间代码共享的特性, 类似一…...

java.lang.NoClassDefFoundError: ch/qos/logback/core/util/StatusPrinter2

1、问题 SpringBoot升级报错&#xff1a; Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/util/StatusPrinter2 类找不到&#xff1a; Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.util.StatusPrinter22、…...

WebRTC ICE配置类型

ICE&#xff08;Interactive Connectivity Establishment&#xff09;是一个用于建立WebRTC和其他实时通信会话中的点对点连接的框架。ICE协议通过尝试多个候选地址&#xff08;候选者&#xff09;来寻找最佳路径来连接两个对等端。ICE有多种配置类型&#xff0c;包括标准ICE、…...

制造知识普及(八)--企业内部物料编码(IPN)与制造商物料编码(MPN)

1、什么是物料编码 通常情况下&#xff0c;物料编码分两种&#xff0c;一种是企业内部物料编码&#xff08;IPN&#xff09;&#xff0c;由于在企业研发制造和生产中确认物料唯一性的&#xff0c;用于承载设计参数要求和技术要求。另一种是制造商物料编码&#xff08;MPN&…...

大模型学习笔记 - InstructGPT中的微调与对齐

LLM 微调 之 InstructGPT中的微调与对齐 LLM 微调 之 InstructGPT中的微调与对齐 技术概览 InstructGPT中的微调与对齐 大体步骤标注数据量模型训练 1. SFT 是如何训练的2. Reward Model是如何训练的3. RLHF 是如何训练的具体讲解RLHF 的loss 函数 模型效果参考链接&#xf…...

Unity近似的Transform实现

Unity近似的Transform实现 #include <stdint.h> #include<iomanip> #include <sstream>#include "Transform.h"//Transform::Transform(const Transform& a){ // LOGW("xww 2"); //}Transform::Transform(glm::vec3 localPositio…...

openvidu私有化部署

openvidu私有化部署 简介 OpenVidu 是一个允许您实施实时应用程序的平台。您可以从头开始构建全新的 OpenVidu 应用程序&#xff0c;但将 OpenVidu 集成到您现有的应用程序中也非常容易。 OpenVidu 基于 WebRTC 技术&#xff0c;允许开发您可以想象的任何类型的用例&#xf…...

基于深度学习的视频伪造检测

基于深度学习的视频伪造检测旨在利用深度学习技术来检测和识别伪造的视频内容。伪造视频&#xff0c;尤其是深伪&#xff08;Deepfake&#xff09;视频&#xff0c;近年来随着生成对抗网络&#xff08;GAN&#xff09;技术的发展&#xff0c;变得越来越逼真和难以识别。这对个人…...

python机器人编程——开发一个pymatlab工具箱(上)

目录 一、前言二、实现过程2.1 封装属性2.2 数据流化显示2.3 输入数据的适应性 三、核心代码说明3.1 设置缓存3.2 随机信号3.3 根据设置绘图 五、总结四、源码PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源 一、前言 我们知道m…...

输入类控件

目录 1.Line Edit 代码示例: 录入个人信息 代码示例: 使用正则表达式验证输入框的数据 代码示例: 验证两次输入的密码一致 代码示例: 切换显示密码 2.Text Edit 代码示例: 获取多行输入框的内容 代码示例: 验证输入框的各种信号 3.Combo Box 代码示例: 使用下拉框模拟…...

C++20中的模块

大多数C项目使用多个翻译单元(translation units)&#xff0c;因此它们需要在这些单元之间共享声明和定义(share declarations and definitions)。headers的使用在这方面非常突出。模块(module)是一种language feature&#xff0c;用于在翻译单元之间共享声明和定义。它们是某些…...

Selenium与流行框架集成:pytest与Allure报告

Selenium与流行框架集成&#xff1a;pytest与Allure报告 在现代软件开发中&#xff0c;自动化测试是确保产品质量和快速迭代的关键。Selenium作为业界领先的Web自动化测试工具&#xff0c;其灵活性和强大的功能受到广泛认可。为了进一步提升测试效率和报告质量&#xff0c;本文…...

日撸Java三百行(day17:链队列)

目录 一、队列基础知识 1.队列的概念 2.队列的实现 二、代码实现 1.链队列创建 2.链队列遍历 3.入队 4.出队 5.数据测试 6.完整的程序代码 总结 一、队列基础知识 1.队列的概念 今天我们继续学习另一个常见的数据结构——队列。和栈一样&#xff0c;队列也是一种操…...

Android摄像头采集选Camera1还是Camera2?

Camera1还是Camera2&#xff1f; 好多开发者纠结&#xff0c;Android平台采集摄像头&#xff0c;到底是用Camera1还是Camera2&#xff1f;实际上&#xff0c;Camera1和Camera2分别对应相机API1和相机API2。Android 5.0开始&#xff0c;已经弃用了Camera API1&#xff0c;新平台…...

零基础5分钟上手亚马逊云科技AWS核心云开发/云架构 - 创建高可用数据库集群

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;让大家零基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我将每天介绍一个基于亚马逊云科…...

力扣315.计算右侧小于当前元素的个数

力扣315.计算右侧小于当前元素的个数 离散化 树状数组 const int N 100010;int tr[N],n;class Solution {public:vector<int> countSmaller(vector<int>& nums) {n nums.size();vector<int> tmp(nums);vector<int> res(n);memset(tr,0,sizeo…...

websocket,css动画和css-position、display、区别

一、websocket codereturn {// 用于存储 WebSocket 返回的状态数据statusList: [],},mounted() {this.setupWebSocket();this.startBlinking();},methods: {setupWebSocket() {// 创建 WebSocket 连接const socket = new WebSocket(ws://xxx.xxx:xxx/xxx);// WebSocket 连接成功…...

前端获取视频文件宽高信息和视频时长

安装 yarn add video-metadata-thumbnails | npm install video-metadata-thumbnails引入依赖包 import { getMetadata } from video-metadata-thumbnails使用 if (file.name.includes(mp4)) {if (file) {try {console.log(file)// 获取视频的元数据const metadata await …...

Navicat连接PostgreSQL常见问题排查指南

1. Navicat连接PostgreSQL的典型问题场景 第一次用Navicat连PostgreSQL的朋友&#xff0c;八成会遇到这个报错画面——输入完账号密码点连接&#xff0c;结果弹个红叉提示"无法连接到服务器"。这种情况我见得太多了&#xff0c;特别是连接远程服务器或者虚拟机里的数…...

告别 Mac mini 挂机,千元级AI边缘计算机让 Clawdbot 7×24 小时稳定值守

近日&#xff0c;开源 AI Agent 项目 Clawdbot&#xff08;现 OpenClaw&#xff09;火遍全球&#x1f525; 它不是普通聊天机器人。而是那种——真的会「动手干活」的 AI。 读文件、跑命令、改代码、调接口&#xff0c;甚至直接拥有系统权限&#xff0c;替你完成自动化操作。让…...

电源噪声克星:手把手教你用陷波滤波器消除60Hz工频干扰(Matlab/示波器实测)

电源噪声克星&#xff1a;手把手教你用陷波滤波器消除60Hz工频干扰&#xff08;Matlab/示波器实测&#xff09; 当你的高精度ADC采集数据出现周期性波动时&#xff0c;很可能是工频干扰在作祟。这种以60Hz&#xff08;或50Hz&#xff09;为基频的噪声&#xff0c;就像电子系统中…...

别再直接kubectl apply了!手把手教你定制化部署Kuboard v3管理面板

深度定制化部署Kuboard v3&#xff1a;从基础配置到企业级实践 在Kubernetes生态中&#xff0c;管理面板的选择往往决定了集群运维的效率和体验。Kuboard作为一款轻量级但功能全面的Kubernetes管理工具&#xff0c;其v3版本提供了比原生Dashboard更丰富的功能集。然而&#xff…...

BilibiliDown:5分钟学会高效下载B站视频的完整指南

BilibiliDown&#xff1a;5分钟学会高效下载B站视频的完整指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/B…...

终极DDrawCompat使用指南:让经典游戏在现代Windows系统完美运行

终极DDrawCompat使用指南&#xff1a;让经典游戏在现代Windows系统完美运行 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/…...

Windows 11 LTSC 应用商店安装工具:一键解锁完整应用生态

Windows 11 LTSC 应用商店安装工具&#xff1a;一键解锁完整应用生态 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC版本…...

忍者像素绘卷:天界画坊卷积神经网络原理与应用:解析像素风格生成内核

忍者像素绘卷&#xff1a;天界画坊卷积神经网络原理与应用 1. 卷积神经网络基础入门 在开始探索忍者像素绘卷的神奇世界之前&#xff0c;我们需要先了解支撑它的核心技术——卷积神经网络(CNN)。CNN就像一位精通像素艺术的数字画家&#xff0c;能够从原始图像中提取特征&…...

终极指南:如何免费下载Steam创意工坊模组,无需安装Steam客户端

终极指南&#xff1a;如何免费下载Steam创意工坊模组&#xff0c;无需安装Steam客户端 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾因游戏不在Steam平台而无法下载心…...

手把手教你用树莓派GPIO点个灯:从Python到C语言三种方法全搞定

树莓派GPIO实战&#xff1a;Python与C语言点亮LED的三种经典方案 第一次拿到树莓派时&#xff0c;最让人兴奋的莫过于那些整齐排列的GPIO引脚——它们就像通往物理世界的大门。而点亮一个LED&#xff0c;无疑是推开这扇门最经典的"Hello World"。但你知道吗&#xff…...