Quellcode durchsuchen

fix 'name' option issue (#3040)

ref: #3039
kazuya kawaguchi vor 10 Jahren
Ursprung
Commit
12cd46dc1a
2 geänderte Dateien mit 12 neuen und 1 gelöschten Zeilen
  1. 3 1
      src/global-api.js
  2. 9 0
      test/unit/specs/global_api_spec.js

+ 3 - 1
src/global-api.js

@@ -210,7 +210,9 @@ export default function (Vue) {
           type === 'component' &&
           isPlainObject(definition)
         ) {
-          definition.name = id
+          if (!definition.name) {
+            definition.name = id
+          }
           definition = Vue.extend(definition)
         }
         this.options[type + 's'][id] = definition

+ 9 - 0
test/unit/specs/global_api_spec.js

@@ -112,5 +112,14 @@ describe('Global API', function () {
       // extended registration should not pollute global
       expect(Vue.options.components.test).toBeUndefined()
     })
+
+    // GitHub issue #3039
+    it('component with `name` option', function () {
+      var def = { name: 'Component1' }
+      Test.component('ns-tree', def)
+      var component = Test.options.components['ns-tree']
+      expect(typeof component).toBe('function')
+      expect(component.name).toBe('Component1')
+    })
   })
 })