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(例如 usePageScroll, useReachBottom)从 @tarojs/taro 中引入,框架自己的 Hooks (例如 useEffect, useState)从对应的框架引入

复制代码
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')
})
相关推荐
阿阳微客4 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
Chef_Chen9 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电9 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
海的诗篇_10 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby10 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
AgilityBaby10 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
武昌库里写JAVA11 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
一弓虽12 小时前
git 学习
git·学习
Moonnnn.14 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
viperrrrrrrrrr715 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习