parent
80a58ac116
commit
67ac6a7e95
|
@ -17,9 +17,9 @@
|
|||
### 一些注意事项
|
||||
|
||||
- 路由不支持嵌套, 即`<router-view></router-view>`只能出现`1`次。
|
||||
- `$router`和`$route`对象, 只注入到一级路由页面, 页面引用的其他`web components`组件, 不会注入。
|
||||
- 所有路由页面和组件, 均可使用`getCurrentPage()`获取当前的`$route`对象; 同时可以使用`getRouter()`获取`$router`对象。
|
||||
- `$store`对象, 只注入到一级路由页面, 其他组件可使用`getStore()`获取。
|
||||
- `$router`对象, 只注入到使用`wkit`创建的组件, 其他地方可以使用`getRouter()`获取`$router`对象。
|
||||
- 所有路由页面和组件, 均可使用`getCurrentPage()`获取当前的页面的信息; 也可以用`$router.route`获取。
|
||||
- `$store`对象, 只注入到使用`wkit`创建的组件, 其他组件可使用`getStore()`获取。
|
||||
- `$store`对象为非响应式, 后续可能会支持(时间无限期延后)。
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wkitd",
|
||||
"version": "0.0.0",
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
"files": [
|
||||
|
|
13
src/index.js
13
src/index.js
|
@ -31,7 +31,6 @@ export function createApp({
|
|||
}
|
||||
this.mount = function () {
|
||||
let $router = window.__wkitd__.get('$router')
|
||||
window.foo = $router
|
||||
if (render) {
|
||||
App.prototype.render = render
|
||||
} else {
|
||||
|
@ -87,3 +86,15 @@ export function createApp({
|
|||
}
|
||||
})()
|
||||
}
|
||||
|
||||
export function getStore() {
|
||||
return window.__wkitd__.get('$store')
|
||||
}
|
||||
|
||||
export function getRouter() {
|
||||
return window.__wkitd__.get('$router')
|
||||
}
|
||||
|
||||
export function getCurrentPage() {
|
||||
return window.__wkitd__.get('$router')?.route
|
||||
}
|
||||
|
|
|
@ -16,11 +16,10 @@ export function createRouter({
|
|||
let $router = history()
|
||||
|
||||
window.__wkitd__.set('$router', $router)
|
||||
Component.prototype.$router = $router
|
||||
|
||||
$router.addRoute(routes)
|
||||
function wrapper() {
|
||||
return $router
|
||||
Component.prototype.$router = $router
|
||||
}
|
||||
wrapper.beforeEach = $router.beforeEach.bind($router)
|
||||
return wrapper
|
||||
|
|
22
src/store.js
22
src/store.js
|
@ -7,11 +7,25 @@
|
|||
import { Component } from 'wkit'
|
||||
|
||||
export function createStore(obj = {}) {
|
||||
window.__wkitd__.$store = obj
|
||||
|
||||
Component.prototype.$store = obj
|
||||
window.__wkitd__.set(
|
||||
'$store',
|
||||
new Proxy(obj, {
|
||||
set(target, prop, value) {
|
||||
target[prop] = value
|
||||
return true
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
return function () {
|
||||
//
|
||||
Object.defineProperty(Component.prototype, '$store', {
|
||||
get() {
|
||||
return window.__wkitd__.get('$store')
|
||||
},
|
||||
set(val) {
|
||||
console.error('Can not replace readonly property $store of Component')
|
||||
},
|
||||
enumerable: false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue