vue-spear-tip 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +24 -24
- package/README.md +13 -13
- package/index.cjs +4 -4
- package/index.js +4 -4
- package/package.json +16 -16
- package/src/Interfaces/IBaseVueComponent.ts +7 -7
- package/src/Interfaces/IVueClass.ts +226 -226
- package/src/components/BaseComponent.vue +22 -22
- package/src/core/Computed.ts +38 -38
- package/src/core/Props.ts +70 -70
- package/src/core/VueClass.ts +79 -79
- package/src/core/VueClassComponent.ts +347 -347
- package/src/core/Watch.ts +45 -45
- package/src/core/index.ts +9 -9
- package/tsconfig.json +13 -13
- package/.idea/deployment.xml +0 -35
- package/.idea/modules.xml +0 -8
- package/.idea/php.xml +0 -19
- package/.idea/vcs.xml +0 -6
- package/.idea/vue-ts-class-components.iml +0 -8
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
name: Publish Package
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches: [ main ]
|
|
5
|
-
release:
|
|
6
|
-
types: [published]
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: read
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
publish:
|
|
13
|
-
runs-on: ubuntu-latest
|
|
14
|
-
steps:
|
|
15
|
-
- uses: actions/checkout@v5
|
|
16
|
-
- uses: actions/setup-node@v4
|
|
17
|
-
with:
|
|
18
|
-
node-version: '22'
|
|
19
|
-
registry-url: 'https://registry.npmjs.org'
|
|
20
|
-
token: ${{ secrets.NPM_TOKEN }}
|
|
21
|
-
- run: npm install -g npm@latest
|
|
22
|
-
- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
|
|
23
|
-
- run: npm publish
|
|
24
|
-
env:
|
|
1
|
+
name: Publish Package
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [ main ]
|
|
5
|
+
release:
|
|
6
|
+
types: [published]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v5
|
|
16
|
+
- uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: '22'
|
|
19
|
+
registry-url: 'https://registry.npmjs.org'
|
|
20
|
+
token: ${{ secrets.NPM_TOKEN }}
|
|
21
|
+
- run: npm install -g npm@latest
|
|
22
|
+
- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
|
|
23
|
+
- run: npm publish
|
|
24
|
+
env:
|
|
25
25
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# Vue TypeScript Class Components
|
|
2
|
-
## (reactive OOP frontend programming)
|
|
3
|
-
|
|
4
|
-
Vue 3 simple class components with @Watch, @Computed, @Prop decorators.
|
|
5
|
-
And UI KIT on them.
|
|
6
|
-
|
|
7
|
-
#### Install
|
|
8
|
-
```
|
|
9
|
-
npm install vue-spear-tip
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Use with vite + html/pug + typescript classes + sass/scss
|
|
13
|
-
|
|
1
|
+
# Vue TypeScript Class Components
|
|
2
|
+
## (reactive OOP frontend programming)
|
|
3
|
+
|
|
4
|
+
Vue 3 simple class components with @Watch, @Computed, @Prop decorators.
|
|
5
|
+
And UI KIT on them.
|
|
6
|
+
|
|
7
|
+
#### Install
|
|
8
|
+
```
|
|
9
|
+
npm install vue-spear-tip
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Use with vite + html/pug + typescript classes + sass/scss
|
|
13
|
+
|
package/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
|
|
5
5
|
}
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "vue-spear-tip",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "./index.cjs",
|
|
6
|
-
"module": "./index.js",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"import": "./index.js",
|
|
10
|
-
"require": "./index.cjs",
|
|
11
|
-
"types": {
|
|
12
|
-
"require": "./index.d.cts",
|
|
13
|
-
"default": "./index.d.ts"
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "vue-spear-tip",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./index.cjs",
|
|
6
|
+
"module": "./index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./index.js",
|
|
10
|
+
"require": "./index.cjs",
|
|
11
|
+
"types": {
|
|
12
|
+
"require": "./index.d.cts",
|
|
13
|
+
"default": "./index.d.ts"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
17
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import IVueClass from './IVueClass'
|
|
2
|
-
|
|
3
|
-
export default interface IBaseVueComponent extends IVueClass {
|
|
4
|
-
readonly $root: {
|
|
5
|
-
[key:string]:any
|
|
6
|
-
}
|
|
7
|
-
}
|
|
1
|
+
import IVueClass from './IVueClass'
|
|
2
|
+
|
|
3
|
+
export default interface IBaseVueComponent extends IVueClass {
|
|
4
|
+
readonly $root: {
|
|
5
|
+
[key:string]:any
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -1,226 +1,226 @@
|
|
|
1
|
-
import {VNode} from '@vue/runtime-core'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Наследуемый интерфейс компонента vue
|
|
5
|
-
* @interface IVueClass
|
|
6
|
-
* @typedef {Function} mounted Mount
|
|
7
|
-
*/
|
|
8
|
-
export default interface IVueClass {
|
|
9
|
-
readonly mixins: Array<any>
|
|
10
|
-
readonly components: {[key:string|symbol|number]:any}
|
|
11
|
-
readonly emits: Array<string>
|
|
12
|
-
readonly emitsParent: Array<string>
|
|
13
|
-
readonly inject: Array<string>
|
|
14
|
-
readonly injectParent: Array<string>
|
|
15
|
-
readonly provide: {[key:string]:any}
|
|
16
|
-
readonly provideParent: {[key:string]:(...args: any) => any}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Название компонента. Определяется автоматически по названию класса если наследовать от View.
|
|
20
|
-
*/
|
|
21
|
-
readonly name: string
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Экземпляр класса. Учтите, что контекст this не будет содержать vue элементов.
|
|
25
|
-
*/
|
|
26
|
-
readonly instance?: this
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Содержит привязки атрибутов и события в родительском компоненте,
|
|
30
|
-
* которые не были распознаны (и исключены) как
|
|
31
|
-
* [входные параметры](https://v3.ru.vuejs.org/ru/api/options-data.html#props)
|
|
32
|
-
* компонента или пользовательские события.
|
|
33
|
-
* Если компонент не объявляет входные параметры или
|
|
34
|
-
* [пользовательские события](https://v3.ru.vuejs.org/ru/api/options-data.html#emits),
|
|
35
|
-
* тут будут все привязки из родительского компонента,
|
|
36
|
-
* которые можно передать через v-bind="$attrs" внутреннему компоненту —
|
|
37
|
-
* удобно при создании компонентов высшего порядка (HOC, High Order Components).
|
|
38
|
-
*
|
|
39
|
-
* **См. также**
|
|
40
|
-
*
|
|
41
|
-
* [$attrs](https://v3.ru.vuejs.org/ru/api/instance-properties.html#attrs)
|
|
42
|
-
*
|
|
43
|
-
* [Передача обычных атрибутов](https://v3.ru.vuejs.org/ru/guide/component-attrs.html)
|
|
44
|
-
*
|
|
45
|
-
* [Options API / Разное — inheritAttrs](https://v3.ru.vuejs.org/ru/api/options-misc.html#inheritattrs)
|
|
46
|
-
*/
|
|
47
|
-
readonly $attrs: Object
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Объект с данными, за которыми осуществляет наблюдение экземпляр компонента.
|
|
51
|
-
* Экземпляр компонента проксирует доступ к свойствам объекта данных.
|
|
52
|
-
*
|
|
53
|
-
* **См. также**
|
|
54
|
-
*
|
|
55
|
-
* [$data](https://v3.ru.vuejs.org/ru/api/instance-properties.html#data)
|
|
56
|
-
*
|
|
57
|
-
* [Options API / Локальное состояние — data](https://v3.ru.vuejs.org/ru/api/options-data.html#data)
|
|
58
|
-
*/
|
|
59
|
-
readonly $data: Object
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Корневой элемент DOM, которым управляет экземпляр компонента.
|
|
63
|
-
*
|
|
64
|
-
* Для компонентов использующих [фрагменты](https://v3.ru.vuejs.org/ru/guide/migration/fragments.html),
|
|
65
|
-
* `$el` будет узлом DOM, с помощью которого Vue будет отслеживать место компонента в DOM.
|
|
66
|
-
* Рекомендуется использовать ссылки на элементы шаблона для доступа к элементам DOM напрямую,
|
|
67
|
-
* а не полагаться на `$el`
|
|
68
|
-
*
|
|
69
|
-
* **См. также**
|
|
70
|
-
*
|
|
71
|
-
* [$el](https://v3.ru.vuejs.org/ru/api/instance-properties.html#el)
|
|
72
|
-
*/
|
|
73
|
-
readonly $el: HTMLElement
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Опции инициализации, используемые для текущего экземпляра компонента.
|
|
77
|
-
* Полезно, если потребуется добавить пользовательские свойства в опции:
|
|
78
|
-
*
|
|
79
|
-
* **См. также**
|
|
80
|
-
*
|
|
81
|
-
* [$options](https://v3.ru.vuejs.org/ru/api/instance-properties.html#options)
|
|
82
|
-
*/
|
|
83
|
-
readonly $options: {
|
|
84
|
-
__scopeId: string
|
|
85
|
-
__file: string
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Родительский экземпляр, если таковой имеется
|
|
90
|
-
*
|
|
91
|
-
* **См. также**
|
|
92
|
-
*
|
|
93
|
-
* [$parent](https://v3.ru.vuejs.org/ru/api/instance-properties.html#parent)
|
|
94
|
-
*/
|
|
95
|
-
readonly $parent: IVueClass|null
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Объект, содержащий текущие входные параметры, которые получил компонент.
|
|
99
|
-
* Экземпляр компонента проксирует доступ к свойствам объекта входных параметров.
|
|
100
|
-
*
|
|
101
|
-
* **См. также**
|
|
102
|
-
*
|
|
103
|
-
* [$props](https://v3.ru.vuejs.org/ru/api/instance-properties.html#props)
|
|
104
|
-
*/
|
|
105
|
-
readonly $props: {[key:string]:any}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Объект из DOM-элементов и экземпляров компонентов, зарегистрированных с помощью
|
|
109
|
-
* [атрибутов ref](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html).
|
|
110
|
-
*
|
|
111
|
-
* **См. также**
|
|
112
|
-
*
|
|
113
|
-
* [Ссылки на элементы шаблона](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html)
|
|
114
|
-
* [Специальные атрибуты — ref](https://v3.ru.vuejs.org/ru/api/special-attributes.html#ref)
|
|
115
|
-
*/
|
|
116
|
-
readonly $refs: {
|
|
117
|
-
[key:string]:HTMLElement|HTMLInputElement|undefined|
|
|
118
|
-
HTMLElement[]|HTMLInputElement[]
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Экземпляр корневого компонента текущего дерева компонентов.
|
|
123
|
-
* Если у текущего экземпляра нет родителя, то значением будет он сам.
|
|
124
|
-
*/
|
|
125
|
-
readonly $root: {
|
|
126
|
-
// [key:string]:any
|
|
127
|
-
readonly APP?: any
|
|
128
|
-
}|this|any
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Используется для программного доступа к содержимому, распределяемому с помощью слотов.
|
|
132
|
-
* Каждый именованный слот имеет соответствующее свойство
|
|
133
|
-
* (например, содержимое v-slot:foo будет доступно через this.$slots.foo()).
|
|
134
|
-
*/
|
|
135
|
-
readonly $slots: {
|
|
136
|
-
default: () => VNode[]
|
|
137
|
-
} & {
|
|
138
|
-
[key: string]: (() => VNode[]) | undefined
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Генерирует событие на текущем экземпляре.
|
|
143
|
-
* Любые дополнительные аргументы будут переданы в callback функции прослушивания события.
|
|
144
|
-
* @param {String} eventName Название события
|
|
145
|
-
* @param {*} args Аргументы передаваемые в него
|
|
146
|
-
*/
|
|
147
|
-
$emit(eventName: string, ...args: any[]): void
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Откладывает вызов коллбэка до следующего цикла обновления DOM.
|
|
151
|
-
* @param {Function} callback
|
|
152
|
-
*/
|
|
153
|
-
$forceUpdate(callback?: Function): void
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Отслеживание изменений реактивного свойства или функции вычисляемого свойства.
|
|
157
|
-
* @param {String} source
|
|
158
|
-
* @param {Function} callback
|
|
159
|
-
* @param {VueWatchOptions} options
|
|
160
|
-
*/
|
|
161
|
-
$watch(source?: string | Function, callback?: Function | object, options?: VueWatchOptions): void
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Откладывает вызов коллбэка до следующего цикла обновления DOM.
|
|
165
|
-
* @param {Function} callback
|
|
166
|
-
*/
|
|
167
|
-
$nextTick(callback?: Function): void
|
|
168
|
-
|
|
169
|
-
/** Параметры vue компонента */
|
|
170
|
-
readonly $: {
|
|
171
|
-
[key: string]: any,
|
|
172
|
-
uid: number,
|
|
173
|
-
app: {
|
|
174
|
-
[key: string]: any,
|
|
175
|
-
appContext: {
|
|
176
|
-
[key: string]: any,
|
|
177
|
-
version: string
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
vnode: {
|
|
181
|
-
[key: string]: any,
|
|
182
|
-
scopeId: string,
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// Хуки жизненного цикла
|
|
188
|
-
beforeCreate(): void
|
|
189
|
-
created(): void
|
|
190
|
-
beforeMount(): void
|
|
191
|
-
mounted(): void
|
|
192
|
-
beforeUpdate(): void
|
|
193
|
-
updated(): void
|
|
194
|
-
beforeUnmount(): void
|
|
195
|
-
unmounted(): void
|
|
196
|
-
|
|
197
|
-
// Родительские хуки
|
|
198
|
-
beforeCreateParent(): void
|
|
199
|
-
createdParent(): void
|
|
200
|
-
beforeMountParent(): void
|
|
201
|
-
mountedParent(): void
|
|
202
|
-
beforeUpdateParent(): void
|
|
203
|
-
updatedParent(): void
|
|
204
|
-
beforeUnmountParent(): void
|
|
205
|
-
unmountedParent(): void
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Рекурсивный пропуск шагов
|
|
209
|
-
* @param {Function} callback
|
|
210
|
-
* @param {Number} steps Количество шагов (тиков, смен сцен), которые нужно пропустить
|
|
211
|
-
*/
|
|
212
|
-
nextTick(callback: () => void, steps?: number): void
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Проверка наличия внешнего обработчика события
|
|
216
|
-
* @param name
|
|
217
|
-
*/
|
|
218
|
-
hasExternalHandlerEvent(name: string): boolean
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
export interface VueWatchOptions {
|
|
222
|
-
deep?: boolean,
|
|
223
|
-
immediate?: boolean,
|
|
224
|
-
once?: boolean,
|
|
225
|
-
flush?: string,
|
|
226
|
-
}
|
|
1
|
+
import {VNode} from '@vue/runtime-core'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Наследуемый интерфейс компонента vue
|
|
5
|
+
* @interface IVueClass
|
|
6
|
+
* @typedef {Function} mounted Mount
|
|
7
|
+
*/
|
|
8
|
+
export default interface IVueClass {
|
|
9
|
+
readonly mixins: Array<any>
|
|
10
|
+
readonly components: {[key:string|symbol|number]:any}
|
|
11
|
+
readonly emits: Array<string>
|
|
12
|
+
readonly emitsParent: Array<string>
|
|
13
|
+
readonly inject: Array<string>
|
|
14
|
+
readonly injectParent: Array<string>
|
|
15
|
+
readonly provide: {[key:string]:any}
|
|
16
|
+
readonly provideParent: {[key:string]:(...args: any) => any}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Название компонента. Определяется автоматически по названию класса если наследовать от View.
|
|
20
|
+
*/
|
|
21
|
+
readonly name: string
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Экземпляр класса. Учтите, что контекст this не будет содержать vue элементов.
|
|
25
|
+
*/
|
|
26
|
+
readonly instance?: this
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Содержит привязки атрибутов и события в родительском компоненте,
|
|
30
|
+
* которые не были распознаны (и исключены) как
|
|
31
|
+
* [входные параметры](https://v3.ru.vuejs.org/ru/api/options-data.html#props)
|
|
32
|
+
* компонента или пользовательские события.
|
|
33
|
+
* Если компонент не объявляет входные параметры или
|
|
34
|
+
* [пользовательские события](https://v3.ru.vuejs.org/ru/api/options-data.html#emits),
|
|
35
|
+
* тут будут все привязки из родительского компонента,
|
|
36
|
+
* которые можно передать через v-bind="$attrs" внутреннему компоненту —
|
|
37
|
+
* удобно при создании компонентов высшего порядка (HOC, High Order Components).
|
|
38
|
+
*
|
|
39
|
+
* **См. также**
|
|
40
|
+
*
|
|
41
|
+
* [$attrs](https://v3.ru.vuejs.org/ru/api/instance-properties.html#attrs)
|
|
42
|
+
*
|
|
43
|
+
* [Передача обычных атрибутов](https://v3.ru.vuejs.org/ru/guide/component-attrs.html)
|
|
44
|
+
*
|
|
45
|
+
* [Options API / Разное — inheritAttrs](https://v3.ru.vuejs.org/ru/api/options-misc.html#inheritattrs)
|
|
46
|
+
*/
|
|
47
|
+
readonly $attrs: Object
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Объект с данными, за которыми осуществляет наблюдение экземпляр компонента.
|
|
51
|
+
* Экземпляр компонента проксирует доступ к свойствам объекта данных.
|
|
52
|
+
*
|
|
53
|
+
* **См. также**
|
|
54
|
+
*
|
|
55
|
+
* [$data](https://v3.ru.vuejs.org/ru/api/instance-properties.html#data)
|
|
56
|
+
*
|
|
57
|
+
* [Options API / Локальное состояние — data](https://v3.ru.vuejs.org/ru/api/options-data.html#data)
|
|
58
|
+
*/
|
|
59
|
+
readonly $data: Object
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Корневой элемент DOM, которым управляет экземпляр компонента.
|
|
63
|
+
*
|
|
64
|
+
* Для компонентов использующих [фрагменты](https://v3.ru.vuejs.org/ru/guide/migration/fragments.html),
|
|
65
|
+
* `$el` будет узлом DOM, с помощью которого Vue будет отслеживать место компонента в DOM.
|
|
66
|
+
* Рекомендуется использовать ссылки на элементы шаблона для доступа к элементам DOM напрямую,
|
|
67
|
+
* а не полагаться на `$el`
|
|
68
|
+
*
|
|
69
|
+
* **См. также**
|
|
70
|
+
*
|
|
71
|
+
* [$el](https://v3.ru.vuejs.org/ru/api/instance-properties.html#el)
|
|
72
|
+
*/
|
|
73
|
+
readonly $el: HTMLElement
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Опции инициализации, используемые для текущего экземпляра компонента.
|
|
77
|
+
* Полезно, если потребуется добавить пользовательские свойства в опции:
|
|
78
|
+
*
|
|
79
|
+
* **См. также**
|
|
80
|
+
*
|
|
81
|
+
* [$options](https://v3.ru.vuejs.org/ru/api/instance-properties.html#options)
|
|
82
|
+
*/
|
|
83
|
+
readonly $options: {
|
|
84
|
+
__scopeId: string
|
|
85
|
+
__file: string
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Родительский экземпляр, если таковой имеется
|
|
90
|
+
*
|
|
91
|
+
* **См. также**
|
|
92
|
+
*
|
|
93
|
+
* [$parent](https://v3.ru.vuejs.org/ru/api/instance-properties.html#parent)
|
|
94
|
+
*/
|
|
95
|
+
readonly $parent: IVueClass|null
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Объект, содержащий текущие входные параметры, которые получил компонент.
|
|
99
|
+
* Экземпляр компонента проксирует доступ к свойствам объекта входных параметров.
|
|
100
|
+
*
|
|
101
|
+
* **См. также**
|
|
102
|
+
*
|
|
103
|
+
* [$props](https://v3.ru.vuejs.org/ru/api/instance-properties.html#props)
|
|
104
|
+
*/
|
|
105
|
+
readonly $props: {[key:string]:any}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Объект из DOM-элементов и экземпляров компонентов, зарегистрированных с помощью
|
|
109
|
+
* [атрибутов ref](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html).
|
|
110
|
+
*
|
|
111
|
+
* **См. также**
|
|
112
|
+
*
|
|
113
|
+
* [Ссылки на элементы шаблона](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html)
|
|
114
|
+
* [Специальные атрибуты — ref](https://v3.ru.vuejs.org/ru/api/special-attributes.html#ref)
|
|
115
|
+
*/
|
|
116
|
+
readonly $refs: {
|
|
117
|
+
[key:string]:HTMLElement|HTMLInputElement|undefined|
|
|
118
|
+
HTMLElement[]|HTMLInputElement[]
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Экземпляр корневого компонента текущего дерева компонентов.
|
|
123
|
+
* Если у текущего экземпляра нет родителя, то значением будет он сам.
|
|
124
|
+
*/
|
|
125
|
+
readonly $root: {
|
|
126
|
+
// [key:string]:any
|
|
127
|
+
readonly APP?: any
|
|
128
|
+
}|this|any
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Используется для программного доступа к содержимому, распределяемому с помощью слотов.
|
|
132
|
+
* Каждый именованный слот имеет соответствующее свойство
|
|
133
|
+
* (например, содержимое v-slot:foo будет доступно через this.$slots.foo()).
|
|
134
|
+
*/
|
|
135
|
+
readonly $slots: {
|
|
136
|
+
default: () => VNode[]
|
|
137
|
+
} & {
|
|
138
|
+
[key: string]: (() => VNode[]) | undefined
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Генерирует событие на текущем экземпляре.
|
|
143
|
+
* Любые дополнительные аргументы будут переданы в callback функции прослушивания события.
|
|
144
|
+
* @param {String} eventName Название события
|
|
145
|
+
* @param {*} args Аргументы передаваемые в него
|
|
146
|
+
*/
|
|
147
|
+
$emit(eventName: string, ...args: any[]): void
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Откладывает вызов коллбэка до следующего цикла обновления DOM.
|
|
151
|
+
* @param {Function} callback
|
|
152
|
+
*/
|
|
153
|
+
$forceUpdate(callback?: Function): void
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Отслеживание изменений реактивного свойства или функции вычисляемого свойства.
|
|
157
|
+
* @param {String} source
|
|
158
|
+
* @param {Function} callback
|
|
159
|
+
* @param {VueWatchOptions} options
|
|
160
|
+
*/
|
|
161
|
+
$watch(source?: string | Function, callback?: Function | object, options?: VueWatchOptions): void
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Откладывает вызов коллбэка до следующего цикла обновления DOM.
|
|
165
|
+
* @param {Function} callback
|
|
166
|
+
*/
|
|
167
|
+
$nextTick(callback?: Function): void
|
|
168
|
+
|
|
169
|
+
/** Параметры vue компонента */
|
|
170
|
+
readonly $: {
|
|
171
|
+
[key: string]: any,
|
|
172
|
+
uid: number,
|
|
173
|
+
app: {
|
|
174
|
+
[key: string]: any,
|
|
175
|
+
appContext: {
|
|
176
|
+
[key: string]: any,
|
|
177
|
+
version: string
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
vnode: {
|
|
181
|
+
[key: string]: any,
|
|
182
|
+
scopeId: string,
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
// Хуки жизненного цикла
|
|
188
|
+
beforeCreate(): void
|
|
189
|
+
created(): void
|
|
190
|
+
beforeMount(): void
|
|
191
|
+
mounted(): void
|
|
192
|
+
beforeUpdate(): void
|
|
193
|
+
updated(): void
|
|
194
|
+
beforeUnmount(): void
|
|
195
|
+
unmounted(): void
|
|
196
|
+
|
|
197
|
+
// Родительские хуки
|
|
198
|
+
beforeCreateParent(): void
|
|
199
|
+
createdParent(): void
|
|
200
|
+
beforeMountParent(): void
|
|
201
|
+
mountedParent(): void
|
|
202
|
+
beforeUpdateParent(): void
|
|
203
|
+
updatedParent(): void
|
|
204
|
+
beforeUnmountParent(): void
|
|
205
|
+
unmountedParent(): void
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Рекурсивный пропуск шагов
|
|
209
|
+
* @param {Function} callback
|
|
210
|
+
* @param {Number} steps Количество шагов (тиков, смен сцен), которые нужно пропустить
|
|
211
|
+
*/
|
|
212
|
+
nextTick(callback: () => void, steps?: number): void
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Проверка наличия внешнего обработчика события
|
|
216
|
+
* @param name
|
|
217
|
+
*/
|
|
218
|
+
hasExternalHandlerEvent(name: string): boolean
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export interface VueWatchOptions {
|
|
222
|
+
deep?: boolean,
|
|
223
|
+
immediate?: boolean,
|
|
224
|
+
once?: boolean,
|
|
225
|
+
flush?: string,
|
|
226
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import IBaseVueComponent from '../Interfaces/IBaseVueComponent'
|
|
3
|
-
import VueClass from '../Vue/VueClass'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Базовый компонент.
|
|
7
|
-
* В дальнейшем планируется в него внедрять полезные методы и реактивные свойства (размеры окна, тип и т.д.).
|
|
8
|
-
* От него можно наследовать любой компонент.
|
|
9
|
-
*/
|
|
10
|
-
export default abstract class BaseComponent extends VueClass implements IBaseVueComponent {
|
|
11
|
-
emitsParent = ['update:modelValue']
|
|
12
|
-
declare readonly $root: {
|
|
13
|
-
[key: string]: any
|
|
14
|
-
}
|
|
15
|
-
constructor() {
|
|
16
|
-
super()
|
|
17
|
-
}
|
|
18
|
-
mountedParent() {
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
</script>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IBaseVueComponent from '../Interfaces/IBaseVueComponent'
|
|
3
|
+
import VueClass from '../Vue/VueClass'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Базовый компонент.
|
|
7
|
+
* В дальнейшем планируется в него внедрять полезные методы и реактивные свойства (размеры окна, тип и т.д.).
|
|
8
|
+
* От него можно наследовать любой компонент.
|
|
9
|
+
*/
|
|
10
|
+
export default abstract class BaseComponent extends VueClass implements IBaseVueComponent {
|
|
11
|
+
emitsParent = ['update:modelValue']
|
|
12
|
+
declare readonly $root: {
|
|
13
|
+
[key: string]: any
|
|
14
|
+
}
|
|
15
|
+
constructor() {
|
|
16
|
+
super()
|
|
17
|
+
}
|
|
18
|
+
mountedParent() {
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
</script>
|