美文网首页
27_动态组件

27_动态组件

作者: CHENPEIHUANG | 来源:发表于2018-02-11 12:09 被阅读0次
    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <!--使用v-bind将变量绑定数据,数据更改,变量也更改-->
            <!--动态组件:使用is属性来绑定变量,控制变量的值使当前元素动态渲染不同的组件-->
            <p>
                <a href="#" @click.stop="which='home'">主页</a>
                <a href="#" @click.stop="which='about'">介绍</a>
            </p>
            <div :is="which"></div>
        </div>
        <script src="js/vue.js"></script>
        <script>
            //const定义的变量不可以修改,而且必须初始化
            //var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
            const Home = {
                template:"<div><h1>主页</h1><p>主页内容。。。。</p></div>"
            }
            const About = {
                template:"<div><h1>介绍</h1><p>介绍内容。。。。</p></div>"
            }
            var vm = new Vue({
                el:"#app",
                components:{
                    'home':Home,
                    'about':About
                },
                data:{
                    which:"home"
                }
            })
        </script>
    </body>
    </html>
    

    也可将template单独拿出来

    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <p>
                <a href="#" @click="which='home'">主页</a>
                <a href="#" @click="which='about'">介绍</a>
            </p>
            <div :is="which"></div>
        </div>
        <script src="js/vue.js"></script>
        <script type="x-template" id="tit">
            <div>
                <h1>主页</h1>
                <p>主页内容。。。。</p>
            </div>
        </script>
        <script type="x-template" id="content">
            <div>
                <h1>介绍</h1>
                <p>介绍内容。。。。</p>
            </div>
        </script>
        <script>
            const Home = {
                template:"#tit"
            }
            const About = {
                template:"#content"
            }
            
            var vm = new Vue({
                el:"#app",
                components:{
                    'home':Home,
                    'about':About
                },
                data:{
                    which:'home'
                }
            })
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:27_动态组件

          本文链接:https://www.haomeiwen.com/subject/kmpktftx.html