简体   繁体   中英

How to get the view or component object using its name in Vue js?

Javascript code:

    var main = new Vue({ 
        el: "#main", 
        data: { 
            currentView: "top", 
        }, 
    }); 

   var topComponent = Vue.component('top', Vue.extend({ 
    template: "#top", 
   })); 

Now when I access main.currentView, I get "top". But with this string 'top', how do i get the component topComponent ?

From the VueJS guide

Despite the existence of props and events, sometimes you might still need to directly access a child component in JavaScript. To achieve this you have to assign a reference ID to the child component using ref . For example:

 var parent = new Vue({ el: '#parent' }) // access child component instance var child = parent.$refs.profile
 <div id="parent"> <user-profile ref="profile"></user-profile> </div>

It's easy. You can access the topComponent just using Vue.component .

var topComponent = Vue.component('top');

Now you have topComponent , you can do a lot of things with its methods.

cid
options
super
extend
directive
filter
partial
transition
component

You may want to check out this example:

http://jsbin.com/wikeb/1/edit

It uses the v-view directive in the html, which takes a string to change the viewmodel displayed. Some sweet transitions going on as well.

Comes from: https://github.com/yyx990803/vue/blob/master/test/functional/fixtures/routing.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM