Uri.parse(...) breaks a URL string into a structured value with host, pathSegments, and queryParameters. The example reads each piece and prints a compact summary.

Program

Play the program to pull host, page, and step from a fixed URL.

uri_parse_lite.dart
Replay: real traced execution (multi-file project)
void main() {
  var uri = Uri.parse('https://egtry.dev/dart/hello?step=5');
  var host = uri.host;
  var page = uri.pathSegments.last;
  var step = uri.queryParameters['step'] ?? '0';
  print('$host $page step=$step');
}
  1. uri ← https://egtry.dev/dart/hello?step=5

    1void main() {2  var uri = Uri.parse('https://egtry.dev/dart/hello?step=5');3  var host = uri.host;
    values this stephttps://egtry.dev/dart/hello?step=5uri
  2. host ← egtry.dev

    2var uri = Uri.parse('https://egtry.dev/dart/hello?step=5');3var host = uri.host;4var page = uri.pathSegments.last;
    values this stepegtry.devhost
  3. page ← hello

    3var host = uri.host;4var page = uri.pathSegments.last;5var step = uri.queryParameters['step'] ?? '0';
    values this stephellopage
  4. step ← 5

    4var page = uri.pathSegments.last;5var step = uri.queryParameters['step'] ?? '0';6print('$host $page step=$step');
    values this step5step
  5. print('$host $page step=$step');

    5  var step = uri.queryParameters['step'] ?? '0';6  print('$host $page step=$step');7}
    outputegtry.dev hello step=5
    values this stepegtry.devhosthellopage5step
Uri.parse `Uri.parse(...)` splits a URL string into host, path segments, and query parameters.
pathSegments `uri.pathSegments` is the path split on `/`, so `.last` gives the leaf name.
queryParameters `uri.queryParameters['step'] ?? '0'` reads a query value with a safe default.