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