diff --git a/package-lock.json b/package-lock.json index 81b4587ab..8ef528065 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1943,12 +1943,9 @@ "dev": true }, "async-validator": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1575620555389&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", - "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", - "requires": { - "babel-runtime": "6.x" - } + "version": "3.3.0", + "resolved": "https://r.cnpmjs.org/async-validator/download/async-validator-3.3.0.tgz", + "integrity": "sha1-HZIZO75g1tbIskZpLHAF6e0UqO4=" }, "asynckit": { "version": "0.4.0", @@ -2039,7 +2036,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "resolved": "https://r.cnpmjs.org/babel-runtime/download/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "^2.4.0", @@ -2048,12 +2045,12 @@ "dependencies": { "core-js": { "version": "2.6.11", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1576712142038&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", + "resolved": "https://r.cnpmjs.org/core-js/download/core-js-2.6.11.tgz", "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "resolved": "https://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" } } @@ -4016,6 +4013,16 @@ "normalize-wheel": "^1.0.1", "resize-observer-polyfill": "^1.5.0", "throttle-debounce": "^1.0.1" + }, + "dependencies": { + "async-validator": { + "version": "1.8.5", + "resolved": "https://r.cnpmjs.org/async-validator/download/async-validator-1.8.5.tgz", + "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", + "requires": { + "babel-runtime": "6.x" + } + } } }, "elliptic": { diff --git a/package.json b/package.json index 90f14504d..e5b595ba0 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "async-validator": "^3.3.0", "core-js": "^3.4.3", "element-ui": "^2.4.5", "vue": "^2.6.10" diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue index c23adb3da..c26d75cbd 100644 --- a/src/components/HelloWorld.vue +++ b/src/components/HelloWorld.vue @@ -2,13 +2,13 @@

{{ msg }}

- + - + - +
diff --git a/src/components/Notice.vue b/src/components/Notice.vue new file mode 100644 index 000000000..3dd9b800a --- /dev/null +++ b/src/components/Notice.vue @@ -0,0 +1,63 @@ + + + + + \ No newline at end of file diff --git a/src/components/communication/Child2.vue b/src/components/communication/Child2.vue index bb7b08277..d9c35619b 100644 --- a/src/components/communication/Child2.vue +++ b/src/components/communication/Child2.vue @@ -1,21 +1,28 @@ \ No newline at end of file diff --git a/src/components/communication/Grandson.vue b/src/components/communication/Grandson.vue new file mode 100644 index 000000000..e0bee805c --- /dev/null +++ b/src/components/communication/Grandson.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/components/communication/index.vue b/src/components/communication/index.vue index 394f448bb..5bafdf764 100644 --- a/src/components/communication/index.vue +++ b/src/components/communication/index.vue @@ -4,7 +4,7 @@ - + @@ -13,6 +13,11 @@ import Child2 from '@/components/communication/Child2.vue' export default { + provide() { + return { + foo: 'foo' + } + }, components: { Child1, Child2 }, diff --git a/src/components/form/KForm.vue b/src/components/form/KForm.vue new file mode 100644 index 000000000..51da265e2 --- /dev/null +++ b/src/components/form/KForm.vue @@ -0,0 +1,39 @@ + + + + + \ No newline at end of file diff --git a/src/components/form/KFormItem.vue b/src/components/form/KFormItem.vue new file mode 100644 index 000000000..f019a332a --- /dev/null +++ b/src/components/form/KFormItem.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/src/components/form/KInput.vue b/src/components/form/KInput.vue new file mode 100644 index 000000000..0726dfee6 --- /dev/null +++ b/src/components/form/KInput.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file diff --git a/src/components/form/index.vue b/src/components/form/index.vue index 2e2634261..af642b152 100644 --- a/src/components/form/index.vue +++ b/src/components/form/index.vue @@ -1,19 +1,68 @@ \ No newline at end of file diff --git a/src/utils/create.js b/src/utils/create.js new file mode 100644 index 000000000..81c9fb21e --- /dev/null +++ b/src/utils/create.js @@ -0,0 +1,31 @@ +import Vue from 'vue' + +// Component - 组件配置对象 +// props - 传递给它的属性 +function create(Component, props) { + // const Ctor = Vue.extend(Component) + // new Ctor() + + // 1.构建Component的实例 + const vm = new Vue({ + render(h) { + // h是createElement + // 它可以返回一个vnode + return h(Component, { props }) + } + }).$mount() // 不设置挂载目标,依然可以转换vnode为真实节点$el + // 2.挂载到body上 + document.body.appendChild(vm.$el) + + + // 3.获取组件实例 + const comp = vm.$children[0] + + comp.remove = () => { + document.body.removeChild(vm.$el) + vm.$destroy() + } + + return comp +} +export default create \ No newline at end of file