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 @@
+
+
+
{{title}}
+
{{message}}
+
+
+
+
+
+
\ 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 @@
child2
+
+
{{$attrs.msg}}
+
+
\ 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 @@
+
+
+
grandson
+
{{msg}}
+
+
+
{{foo1}}
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
{{error}}
+
+
+
+
+
+
\ 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