Skip to content

View ​

View extends Component with defaults suited for full-screen pages. It renders to document.body by default, adds a view attribute to the root element for uniform CSS styling, and supports navigation transitions.

Import ​

js
import { View } from '@geajs/mobile'

Basic Usage ​

jsx
class HomeView extends View {
  template() {
    return (
      <view>
        <h1>Welcome</h1>
        <p>This is the home screen.</p>
      </view>
    )
  }

  onActivation() {
    // Called when this view enters the viewport
  }
}

const home = new HomeView()
home.render() // renders to document.body

Properties ​

PropertyTypeDefaultDescription
indexnumber0Z-axis position for stacking views
supportsBackGesturebooleanfalseEnable swipe-back gesture from left edge
backGestureTouchTargetWidthnumber50Width in pixels of the touch area for back gesture
hasSidebarbooleanfalseAllow sidebar reveal via swipe

Lifecycle ​

MethodDescription
onActivation()Called when the view becomes the active view in a ViewManager
panIn(isBeingPulled)Animate the view into the viewport
panOut(isBeingPulled)Animate the view out of the viewport

In addition to the standard Component lifecycle (created, onAfterRender, dispose).

The @geajs/mobile/style.css import provides these defaults, but for custom setups:

css
[view] {
  position: absolute;
  transition: transform 0.35s;
  z-index: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
}

Back Gesture ​

To enable the iOS-style swipe-back gesture on a detail view:

js
class DetailView extends View {
  constructor() {
    super()
    this.supportsBackGesture = true
    this.backGestureTouchTargetWidth = window.innerWidth / 2
  }

  template() {
    return <view><h1>Detail</h1></view>
  }
}

When the user drags from the left edge toward the right, the previous view is revealed underneath. Releasing past the threshold completes the navigation; releasing before snaps back.

Released under the MIT License.