鸿蒙Harmony-线性布局(Row/Column)详解

news2025/1/23 22:28:22

人生的下半场,做个简单的人,少与人纠缠,多看大自然,在路上见世界,在途中寻自己。往后余生唯愿开心健康,至于其他,随缘就好! 

目录

一,定义

二,基本概念

三,布局子元素在排列方向上的间距

四,布局子元素在交叉轴上的对齐方式

4.1 Column容器内子元素在水平方向上的排列

 4.1.1 HorizontalAlign.Start

 4.1.2 HorizontalAlign.Center

4.1.3 HorizontalAlign.End

4.2 Row容器内子元素在垂直方向上的排列

4.2.1 VerticalAlign.Top

4.2.2  VerticalAlign.Center

4.2.3 VerticalAlign.Bottom

五,布局子元素在主轴上的排列方式

5.1 Column容器内子元素在垂直方向上的排列

5.1.1 FlexAlign.Start

5.1.2 FlexAlign.Center

5.1.3 FlexAlign.End

5.1.4 FlexAlign.SpaceBetween

5.1.5 FlexAlign.SpaceAround

5.1.6 FlexAlign.SpaceEvenly

5.2 Row容器内子元素在水平方向上的排列

5.2.1 FlexAlign.Start

5.2.2 FlexAlign.Center

5.2.3 FlexAlign.End

5.2.4 FlexAlign.SpaceBetween

5.2.5 FlexAlign.SpaceAround

5.2.6 FlexAlign.SpaceEvenly

六,自适应拉伸

七, 自适应缩放

八,自适应延伸

8.1 在list中添加滚动条

 8.2 水平方向布局中使用Scroll组件

一,定义

鸿蒙采用了声明式的UI,它的线性布局是Row/Column,类似于Android中的LinearLayout。

线性布局是其他布局的基础,其子元素在线性方向上(水平方向和垂直方向)依次排列。线性布局的排列方向由所选容器组件决定,Column容器内子元素按照垂直方向排列,Row容器内子元素按照水平方向排列。

二,基本概念

布局容器:具有布局能力的容器组件,相当于Android中的viewgroup,可以承载其他元素作为其子元素,布局容器会对其子元素进行尺寸计算和布局排列。

布局子元素:布局容器内部的元素。

主轴:线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。Row容器主轴为水平方向,Column容器主轴为垂直方向。

交叉轴:垂直于主轴方向的轴线。Row容器交叉轴为垂直方向,Column容器交叉轴为水平方向。

间距:布局子元素的间距。

三,布局子元素在排列方向上的间距

在布局容器内,可以通过space属性设置排列方向上子元素的间距,使各子元素在排列方向上有等间距效果。

Column:

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }
  }
}

效果:

Row:

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }
  }
}

运行效果

四,布局子元素在交叉轴上的对齐方式

在布局容器内,可以通过alignItems属性设置子元素在交叉轴(排列方向的垂直方向)上的对齐方式。且在各类尺寸屏幕中,表现一致。其中,交叉轴为垂直方向时,取值为VerticalAlign类型,水平方向取值为HorizontalAlign

alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式,其优先级高于alignItems属性,如果设置了alignSelf属性,则在单个子元素上会覆盖alignItems属性。

4.1 Column容器内子元素在水平方向上的排列

注意:必须指定Column的宽度,否则无效

 4.1.1 HorizontalAlign.Start

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .alignItems(HorizontalAlign.Start)
  }
}

运行效果:

 4.1.2 HorizontalAlign.Center

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .alignItems(HorizontalAlign.Center)
  }
}

运行效果

4.1.3 HorizontalAlign.End

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .alignItems(HorizontalAlign.End)
  }
}

4.2 Row容器内子元素在垂直方向上的排列

注意:高度必须指定,否则无效

4.2.1 VerticalAlign.Top

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .alignItems(VerticalAlign.Top)
  }
}

4.2.2  VerticalAlign.Center

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .alignItems(VerticalAlign.Center)
  }
}

 

4.2.3 VerticalAlign.Bottom

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .alignItems(VerticalAlign.Bottom)
  }
}

五,布局子元素在主轴上的排列方式

在布局容器内,可以通过justifyContent属性设置子元素在容器主轴上的排列方式。可以从主轴起始位置开始排布,也可以从主轴结束位置开始排布,或者均匀分割主轴的空间。

5.1 Column容器内子元素在垂直方向上的排列

5.1.1 FlexAlign.Start

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
     .height("100%")
    .justifyContent(FlexAlign.Start)
  }
}

5.1.2 FlexAlign.Center

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .height("100%")
    .justifyContent(FlexAlign.Center)
  }
}

5.1.3 FlexAlign.End

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .height("100%")
    .justifyContent(FlexAlign.End)
  }
}

5.1.4 FlexAlign.SpaceBetween

垂直方向均匀分配元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .height("100%")
    .justifyContent(FlexAlign.SpaceBetween)
  }
}

5.1.5 FlexAlign.SpaceAround

垂直方向均匀分配元素,相邻元素之间距离相同。第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .height("100%")
    .justifyContent(FlexAlign.SpaceAround)
  }
}

5.1.6 FlexAlign.SpaceEvenly

垂直方向均匀分配元素,相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.width("100%")
    .height("100%")
    .justifyContent(FlexAlign.SpaceEvenly)
  }
}

5.2 Row容器内子元素在水平方向上的排列

5.2.1 FlexAlign.Start

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.Start)
  }
}

5.2.2 FlexAlign.Center

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.Center)
  }
}

5.2.3 FlexAlign.End

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.End)
  }
}

5.2.4 FlexAlign.SpaceBetween

水平方向均匀分配元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.SpaceBetween)
  }
}

5.2.5 FlexAlign.SpaceAround

水平方向均匀分配元素,相邻元素之间距离相同。第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.SpaceAround)
  }
}

5.2.6 FlexAlign.SpaceEvenly

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
    .width('100%')
   .justifyContent(FlexAlign.SpaceEvenly)
  }
}

六,自适应拉伸

在线性布局下,常用空白填充组件Blank,在容器主轴方向自动填充空白空间,达到自适应拉伸效果。Row和Column作为容器,只需要添加宽高为百分比,当屏幕宽高发生变化时,会产生自适应效果。

@Entry()
@Component
struct RowTest {

  build() {
    Row({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Blank()
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }.height('100%')
      .width('100%')
    
  }
}

七, 自适应缩放

自适应缩放是指子元素随容器尺寸的变化而按照预设的比例自动调整尺寸,适应各种不同大小的设备。在线性布局中,可以使用以下两种方法实现自适应缩放。

7.1 父容器尺寸确定时,使用layoutWeight属性设置子元素和兄弟元素在主轴上的权重,忽略元素本身尺寸设置,使它们在任意尺寸的设备下自适应占满剩余空间。

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#00f")
        .layoutWeight(1)
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#0ff")
        .layoutWeight(2)
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#35f")
        .layoutWeight(3)
    }.width("100%")
    .height("100%")
  }
}

7.2 父容器尺寸确定时,使用百分比设置子元素和兄弟元素的高度,使他们在任意尺寸的设备下保持固定的自适应占比。

@Entry()
@Component
struct Index {

  build() {
    Column({space:20}){
      Text("袁震1")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#00f")
        .height("20%")
      Text("袁震2")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#0ff")
        .height("30%")
      Text("袁震3")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor("#35f")
        .height("50%")
    }.width("100%")
    .height("100%")
  }
}

八,自适应延伸

自适应延伸是指在不同尺寸设备下,当页面的内容超出屏幕大小而无法完全显示时,可以通过滚动条进行拖动展示。这种方法适用于线性布局中内容无法一屏展示的场景。通常有以下两种实现方式。

8.1 在list中添加滚动条

当List子项过多一屏放不下时,可以将每一项子元素放置在不同的组件中,通过滚动条进行拖动展示。可以通过scrollBar属性设置滚动条的常驻状态,edgeEffect属性设置拖动到内容最末端的回弹效果。

@Entry
@Component
struct ScrollExample {
  scroller: Scroller = new Scroller();
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

  build() {
    Scroll(this.scroller) {
      Column() {
        ForEach(this.arr, (item?:number|undefined) => {
          if(item){
            Text(item.toString())
              .width('90%')
              .height(150)
              .backgroundColor(0xFFFFFF)
              .borderRadius(15)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .margin({ top: 10 })
          }
        }, (item:number) => item.toString())
      }.width('100%')
    }
    .backgroundColor(0xDCDCDC)
    .scrollable(ScrollDirection.Vertical) // 滚动方向为垂直方向
    .scrollBar(BarState.On) // 滚动条常驻显示
    .scrollBarColor(Color.Gray) // 滚动条颜色
    .scrollBarWidth(10) // 滚动条宽度
    .edgeEffect(EdgeEffect.Spring) // 滚动到边沿后回弹
  }
}

 8.2 水平方向布局中使用Scroll组件

@Entry
@Component
struct ScrollExample {
  scroller: Scroller = new Scroller();
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

  build() {
    Scroll(this.scroller) {
      Row() {
        ForEach(this.arr, (item?:number|undefined) => {
          if(item){
            Text(item.toString())
              .height('90%')
              .width(150)
              .backgroundColor(0xFFFFFF)
              .borderRadius(15)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .margin({ left: 10 })
          }
        })
      }.height('100%')
    }
    .backgroundColor(0xDCDCDC)
    .scrollable(ScrollDirection.Horizontal) // 滚动方向为水平方向
    .scrollBar(BarState.On) // 滚动条常驻显示
    .scrollBarColor(Color.Gray) // 滚动条颜色
    .scrollBarWidth(10) // 滚动条宽度
    .edgeEffect(EdgeEffect.Spring) // 滚动到边沿后回弹
  }
}

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

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

相关文章

Linux实操学习

Linux常用操作 一、帮助命令1. man1.1 基本语法1.2 快捷键1.3 注意事项 2. help2.1 基本语法2.2 注意事项 3. 常用快捷键 二、文件目录类1. 常规操作1.1 pwd1.2 cd1.3 ls 2. 文件夹操作2.1 mkdir2.2 rmdir 3. 文件操作3.1 touch3.2 cp3.3 rm3.4 mv 4. 文件查看4.1 cat4.2 more4…

浏览器进程模型和JS的事件循环

一、浏览器的进程模型 1、什么是进程? 程序运行所需要的专属内存空间 2、什么是线程? ​​​​​运行​代码的称为线程(同一个进程中的线程共享进程的资源) ⼀个进程⾄少有⼀个线程,所以在进程开启后会⾃动创建⼀个线…

软件测试|Pydantic BaseModel使用详解

简介 当我们在Python中编写应用程序时,通常需要处理和验证数据。Pydantic 是一个流行的库,它可以帮助我们定义数据模型并自动进行数据验证。在Pydantic中,BaseModel是一个核心概念,它用于定义数据模型和验证输入数据。在这篇文章…

Uibot (RPA设计软件)网页表单填写————课前材料四

微信群发助手机器人的小项目友友们可以参考小北的课前材料二博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~) 紧接着小北的前两篇博客,友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#x…

第 5 课 编写简单的发布器 Publisher

文章目录 第 5 课 编写简单的发布器 Publisher 第 5 课 编写简单的发布器 Publisher 本节以创建一个velocity_publisher.py的(发布者)节点为例进行讲解。 输入指令“roscd beginner_hiwonder”,回车。进入beginner_hiwonder软件包。 roscd…

电脑重置网络后连不上网了怎么办

一般电脑重置网络后都会自动重新下载好网络配置,但是不免会出现一些意外,接下来就我遇到的重置后无法联网的解决方案 做一个分享: 1、按下“winR”打开运行输入 services.msc 。 2、找到 WLAN AutoConfig 和 Wired AutoConfig 服务&#xff…

蓝桥杯AcWing学习笔记 8-2数论的学习(下)

蓝桥杯 我的AcWing 题目及图片来自蓝桥杯C AB组辅导课 数论(下) 蓝桥杯省赛中考的数论不是很多,这里讲几个蓝桥杯常考的知识点。 约数个数定理 我们如何去求一个数的约数个数呢? N N N分解质因数的结果: N P 1 α…

【嘿,“怪”回来了】半年未见,好久不见。新年伊始,共赴新约。

您的阅读概要: 故事的开头总是极尽温柔,故事会一直温柔……半年未见,好久不见新年伊始,共赴新约忙碌的敲代码也不要忘了浪漫呀 故事的开头总是极尽温柔,故事会一直温柔…… ✨【自我介绍】:你好&#xff0c…

【ArcGIS Pro微课1000例】0056:度分秒与十进制度互相转换(度分秒→度、度→度分秒)

ArcGIS软件可以很方便的直接实现度分秒转度、度转度分秒(度分秒→度、度→度分秒)。 文章目录 一、转换预览二、工具介绍三、案例解析一、转换预览 借助ArcGIS快速实现度分秒与度及其他格式的坐标转换,例如:度分秒→度、度→度分秒。 1. 度→度分秒 2. 度分秒→度 转换后…

Lagrange对偶法

这里写自定义目录标题 5.1.1 The Lagrangian5.1.2 The Lagrange dual function5.2 The Lagrange dual problem5.2.3 Strong duality and Slater’s constraint qualification5.2.3 Strong duality and Slater’s constraint qualification5.5.3 KKT optimality conditions Lagr…

k8s node节点加入集群,token过期

1、master01节点执行 kubeadm token create --print-join-command 2、执行命令 kubeadm join 192.168.0.236:16443 --token qucd8q.hsfq4a1afluzaky3 --discovery-token-ca-cert-hash sha256:92175a356db070deb2ddd3823e288e3005a4baeec9b68580dcc11ce4d3767195 3、查看node02…

VMware安装CentOS7虚拟机

VMware 安装 获取 VMware 安装包 下载地址:链接:https://pan.baidu.com/s/1ELR5NZa7rO6YVplZ1IUigw?pwdplz3 提取码:plz3 包括:当然,也可以自己去别的地方下载,WMware 版本都差不多,现在用的比…

大量的视频如何批量随机分割的方法:批量剪辑不求人

在处理大量视频文件时,经常要进行随机分割,满足不同的需求。制作短视频、片段集锦等,批量随机分割视频都是一个高效的方法。下面来看云炫AI智剪如何操作的吧。 分割后的视频缩略图展示,被分割的视频自动分类保存在对应的文件夹中。…

【SAP ABAP】数据赋值

1. 赋值 语法格式 f2 f1. 表示将变量f1的值赋值给变量f2 输出结果如下: 扩展补充(带偏移量的赋值) 输出结果如下: 将lv_a从偏移2位开始的位置,取长度为3的内容345赋值给 lv_b,赋值覆盖lv_b从偏移4位开始的位置且长度为3的内容…

【如何在 GitHub上面找项目】【转载】

很多的小伙伴,经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的…

React 原理

函数式编程 纯函数 reducer 必须是一个纯函数,即没有副作用的函数,不修改输入值,相同的输入一定会有相同的输出不可变值 state 必须是不可变值,否则在 shouldComponentUpdate 中无法拿到更新前的值,无法做性能优化操作…

1.2MATLAB数据类型和常用函数

MATLAB数据类型 数据类型表示范围整型 无符号整数8位无符号整数00000000~11111111 (0~-1)16位无符号整数32位无符号整数64位无符号整数带符号整数8位带符号整数10000000~01111111 (~)最左边的1表示符号负号16位带符号整数32位带符号整数64位带符号整数浮…

详解Matlab深度学习进行波形分割

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

乐意购项目前端开发 #1

一、创建vue项目 1. vue create 项目名 2. 运行项目 npm install npm run dev3.使用Git管理项目 创建远程仓库 leyigou 在项目文件终端执行以下代码 git init # git 初始化#这个要使用自己的仓库 git remote add origin gitgitee.com:xie-weijia/leyigou.git # 添加远程仓…

跨镜动线分析丨用AI解读顾客行为,助力零售企业运营与增长

步入数字时代,先进技术让传统零售焕发新生。智慧零售以用户为中心,“人”的数据化价值将反哺生产、渠道、销售、运营全场景。 悠络客正式推出“跨镜动线分析”,运用AI技术,深度分析顾客的进店、逛店等一系列行为,助力零…