-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
124 lines (100 loc) · 2.66 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from vaste import (
VasteApp,
component,
js,
)
from vaste.vue.lib.html import *
from vaste.vue.lib.svg import *
from vaste.npm.lib import node_module
element = node_module.get(
"element-plus",
extra_files=[
"element-plus/dist/index.css"
],
)
vue = node_module.get("vue")
vuerouter = node_module.get("vue-router")
@component
class MyNav:
def data(self):
self.title = "TITLE"
class methods:
def dummy(self):
self.title
def render(self):
return vue.h(
element.ElMenu,
{ "mode": "horizontal" },
[
vue.h(
vuerouter.RouterLink,
{ "to": "/" },
[vue.h(
element.ElMenuItem,
{},
[self.title]
)],
),
vue.h(
vuerouter.RouterLink,
{ "to": "/miew" },
[vue.h(
element.ElMenuItem,
{},
["MIEW"]
)],
),
],
)
@component
class MyComponent:
def data(self):
self.count = 0
self.lool = "MIEW"
class methods:
def inc(self):
self.count += 10
def dec(self):
self.count -= 2
def reset(self):
self.count = 0
def render(self):
return div([
vue.h(
MyNav,
{},
[],
),
div(
children=[
vue.h(
element.ElButton,
{"onClick": self.inc},
[
"My ", self.lool," count : ", self.count,
],
),
vue.h(
element.ElButton,
{"onClick": self.reset},
["RESET"],
),
svg(
children=[
rect(
x=0,
y=0,
width=100,
height=self.count + 50,
onClick=self.dec,
)
],
),
],
),
])
# print(MyComponent)
# print(MyComponent.unparse())
app = VasteApp()
app.add_component_route("/miew", MyComponent)
app.add_component_route("/", MyNav)