encodeProps function

String encodeProps(
  1. Map<String, dynamic> props
)

Encodes a Map as a base64-encoded JSON string for use in HTML attributes.

This is useful for passing complex data structures to components without worrying about HTML escaping issues.

Example

// Server-side rendering
static String render({required User user}) {
  return '''
    <$tag data="${encodeProps({'name': user.name, 'id': user.id})}">
      ...
    </$tag>
  ''';
}

// Client-side hydration
@override
void connectedCallback() {
  final data = decodeProps(prop('data'));
  final userName = data['name'] as String;
}

Implementation

String encodeProps(Map<String, dynamic> props) {
  final json = jsonEncode(props);
  return base64Encode(utf8.encode(json));
}