😍
Framer API 中文版
  • 写在前面
  • 从这里开始
    • 介绍
      • 快速开始
      • 基础
    • 教程
      • 准备 Setup
      • 引入 Slider 组件
      • Slider组件的元素
      • 拖动 & MotionValue
      • Hooks & 传递数据
      • 完成
      • 回顾
    • 简要案例
      • Frame
      • Stack
      • Animate
      • Gestures
      • Dragging 拖拽
      • Scrolling 滚动
      • Paging 翻页
      • Tranforms 变换
      • Variants 动画状态组
  • LIBRARY 库
    • Frame
      • Layout 布局
      • Visual 视觉
      • Transform 变换
      • Animation 动画
      • Transition 过渡
      • Variants 动画状态组
      • Tap 点击
      • Hover 悬浮
      • Pan
      • Drag
      • Types
    • Animation
      • Overview
      • Animation controls
      • Tween
      • Spring
      • Inertia 惯性
      • Orchestration
      • Types
    • Color
      • Create
      • Modify
      • Convert
      • Compare
      • Models
    • Page
      • Content
      • Padding
      • Events
      • Effects
      • PageEffectInfo
    • Scroll
      • Sizing
      • Content
      • Events
    • Stack
      • Content
      • Padding
    • Utilities
      • Transfrom
      • useTransform
      • useAnimation
      • useCycle
      • useMotionValue
      • useSpring
      • useViewportScroll
  • FRAMER X
    • Assets
      • Functions
    • Data & Overrides
    • CanvasComponents
      • Canvas.tsx
      • Layout
      • Colors
    • PropertyControls
      • Adding Controls
      • Hiding Controls
      • Array
      • Boolean
      • Color
      • ComponentInstance
      • Enum
      • File
      • FusedNumber
      • Image
      • Number
      • SegmentedEnum
      • String
    • Render Target
      • Properties
      • Functions
Powered by GitBook
On this page

Was this helpful?

  1. FRAMER X

Data & Overrides

通过Override可以用组件之间共享data

Data对象就像是我们平时常用的一般的JavaScript对象,你可以在里面存放任何数据。当数据有变化时就会刷新页面和相关的组件,它能实现组件之间的数据共享。在这里这个案例中,我们简单地来通过override和data改变一下text标签的text文字内容。

import { Override, Data } from "framer"

const data = Data({ name: "Ben" })

export function setName(): Override {
  return {
    text: data.name,
  }
}
//override 相当于就是覆写你要操作的组件 设置它的属性为你返回对象中的对应设置

Incrementing Values 增加数值

你可以利用Data对象去实现一些递增的数值的设置。比如说这个案例中,我们一开始给Data对象里面传的值是rotate: 0,我们把组件的animate属性设置为data中的rotate值,然后通过onTap绑定一个函数,这个函数每次点击都会让data中的rotate数值增加90。

import { Data, Override } from "framer"

const data = Data({ rotate: 0 })

export function Rotate(): Override {
  return {
    animate: { rotate: data.rotate },
    onTap() {
      data.rotate = data.rotate + 90
    },
  }
}

Data(initial): T

Data的数据可以在多个组件上使用。所有使用了data数据的组件在data数据改变后都会触发组件的刷新或者重新渲染。在下面这个案例中,我们设置了当我们按住组件时,组件的scale属性会使用data中的数据,即为0.5。

import { Data, Override } from "framer"

const data = Data({
   scale: 0.5,
})

export function WhileTap(): Override {
   return {
       whileTap: {
           scale: data.scale,
       },
   }
}

initial: Partial<T> | object

放入data中的初始数据

returns: T

返回的对象,包含了设置的数据

PreviousFunctionsNextCanvasComponents

Last updated 5 years ago

Was this helpful?