# Path Prefix: gemeinsame, Code-Listen, vorübergehende Status und Plugin-Paths

> Der erste Charakter eines jComponent-Paths wählt, wo der Wert lebt: * der gemeinsame Zustand, # die Code-Listen, % der vorübergehenden Zustand?|Eine Art von Plugin ist ein Objekt.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: de
Content-SHA256: aaff2bda1813567db64370767a33975165f48b61a3db08564894eda2649f831d
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: jcomponent20@3fedd009a277f50fddc608b97afbec553b67c51b
Review: not-recorded

Ein Weg ist, wo ein Wert im Zustand der Seite lebt, und in jComponent 20 sein **erster Charakter** kann den Ort ändern.

| Präfix | Beispiel | Worauf es zeigt |
|---|---|---|
| `*` | `*user.name` | der gemeinsame Zustand: `common.user.name` (`*` allein ist `common`) |
| `#` | `#countries` | die Code-Listen: `DEF.cl.countries`, wo `CL()` die geladenen Listen ablegt |
| `%` | `%step` | der temporäre Zustand: `DEF.tmp.step`, für Werte, die nicht zum Modell gehören |
| `?` | `?.items` | innerhalb eines `<ui-plugin>`: der Pfad dieses Plugins (siehe das Plugin-Rezept) |
| `plugin\|path` | `cart\|items` | eine Eigenschaft des Plugin-Objekts namens `cart`, von überall: `PLUGINS["cart"].items` (es ist **nicht** der Zustandspfad `cart.items`) |

Die Flags eines Pfads (`@visible`, `@change`...) sind etwas anderes: Sie stehen nach einem Leerzeichen (siehe das Rezept zu eigenen Flags). Pfade ohne Präfix sind normale Pfade des Zustands (`user.name`).

```html public/index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>jComponent</title>
	<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
	<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>

	<ui-bind path="*user.name" config="text:value" class="common"></ui-bind>
	<ui-bind path="#greeting" config="text:value" class="cl"></ui-bind>
	<ui-bind path="%step" config="text:value" class="tmp"></ui-bind>
	<ui-bind path="plain.value" config="text:value" class="plain"></ui-bind>

	<ui-plugin path="cart">
		<ui-bind path="?.items" config="text:value" class="own"></ui-bind>
	</ui-plugin>

	<script>
		PLUGIN('cart', function(self) {});
		SET('*user.name', 'Peter');
		SET('#greeting', 'Hello');
		SET('%step', 3);
		SET('plain.value', 'plain');
		SET('cart.items', 7);
	</script>

</body>
</html>
```
