Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
287 views
in Technique[技术] by (71.8m points)

laravel - define vue application in blade component

I have navigation component reused in multiple blade pages with some modification. so I used:

<script>
    window.app = new Vue({
        el: '#navigation',
        ....
    });
</script>

in my navigation component.

when I included it in profile component that have:

<script>
    window.app = new Vue({
        el: '#app',
        ....
    });
</script>

one of them doesn't work. I know that these two definitions have anastomosis but I don't know how resolve it.

In simple what the matter with this:

<script>
    window.app = new Vue({
        el: '#app1',
        ....
    });
</script>

<script>
    window.app = new Vue({
        el: '#app2',
        ....
    });
</script>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use one Vue app declaration by HTML container. You can't use one declared component inside other declared component.

So you can do this.

<!DOCTYPE HTML>
<html lang="en">
    <head>
      .....
    </head>
    <body>
        <!-- MAYBE YOU CAN DO A BLADE TEMPLATE -->
        <div id="navitagion"></div>  
        <div id="app"></div>  
        <!--=============== scripts  ===============-->
        <script type="text/javascript" src="{{asset('path/to/vue.js')}}"></script>
        const app = new Vue({
           el: '#app',
        });
        const navigation = new Vue({
           el: '#navigation',
        });
    </body>
</html>

You can add references in any container to use outside of Vue declaration like javascript or in other Vue component

But try and let me know how it works :)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...