SeoAwarePage<T extends StatefulWidget> mixin

Mixin for StatefulWidget pages that need SEO metadata.

Provides a declarative way to define SEO properties for a page without using the SeoHead widget.

class ProductPage extends StatefulWidget {
  final String productId;
  const ProductPage({required this.productId});

  @override
  State<ProductPage> createState() => _ProductPageState();
}

class _ProductPageState extends State<ProductPage> with SeoAwarePage {
  @override
  String get seoTitle => 'Product ${widget.productId}';

  @override
  String get seoDescription => 'Details for product ${widget.productId}';

  @override
  String? get seoCanonicalUrl =>
      'https://example.com/products/${widget.productId}';

  @override
  Widget build(BuildContext context) {
    return Scaffold(...);
  }
}
Superclass constraints

Properties

context BuildContext
The location in the tree where this widget builds.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
mounted bool
Whether this State object is currently in a tree.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
seoCanonicalUrl String?
The canonical URL for this page
no setter
seoDescription String
The page description (required)
no setter
seoImage String?
The OG image URL
no setter
seoIndexable bool
Whether this page should be indexed
no setter
seoKeywords List<String>?
Keywords for this page
no setter
seoStructuredData List<JsonLdSchema>?
Structured data schemas for this page
no setter
seoTitle String
The page title (required)
no setter
seoTrackPageView bool
Whether to track page view automatically
no setter
widget → T
The current configuration.
no setterinherited

Methods

activate() → void
Called when this object is reinserted into the tree after having been removed via deactivate.
inherited
applySeo() → void
Apply SEO metadata. Called automatically on init. Can be called manually to refresh.
build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
inherited
deactivate() → void
Called when this object is removed from the tree.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
didChangeDependencies() → void
Called when a dependency of this State object changes.
inherited
didUpdateWidget(covariant T oldWidget) → void
Called whenever the widget configuration changes.
override
dispose() → void
Called when this object is removed from the tree permanently.
inherited
initState() → void
Called when this object is inserted into the tree.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reassemble() → void
Called whenever the application is reassembled during debugging, for example during hot reload.
inherited
setState(VoidCallback fn) → void
Notify the framework that the internal state of this object has changed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringShort() String
A brief description of this object, usually just the runtimeType and the hashCode.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited