千峰商城-springboot项目搭建-39-vue插槽作用域

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 千峰商城-springboot项目搭建-39-vue插槽作用域,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1.组件定义:
定义组件时,将组件中的数据绑定到slot标签。
Vue.component("page-frame",{
    template:`<div>
    <div id="header" style="width:100%; height:100px; background:pink">
        <slot name="s1"></slot>
    </div>
    <div style="width:100%; height:510px">
        <slot name="s2" v-bind:musics="songs"></slot>
    </div>
    <div id="footer" style="width:100%; height:40px; background:lightgray">{{cr}}</div>
    </div>`,
    props:["title","cr"],
    data:function(){
        return{
            songs:[
            {
                "id":001,
                "name":"逆战",
                "artists":[
                {
                    "id":01,
                    "name":"张杰"
                }
                ]
            },
            {
                "id":002,
                "name":"隐形",
                "artists":[
                {
                    "id":02,
                    "name":"张韶涵"
                }
                ]
                
            }
            ]
        };
    }
    
})

2.引用组件时,在填充插槽的模板上使用slot-scopt属性获取插槽绑定的值。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="css/bootstrap.css" />
        <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="js/bootstrap.js"></script>
        <script type="text/javascript" src="js/vue.js"></script>

    </head>
    <body>
        <div id="container">
            <page-frame title="标题" cr="千峰武汉">
                <template slot="s1">
                    <input type="text"/><button type="button">搜索</button>
                </template>
                <!--在使用模板填充组件插槽时,可以使用slot-scope属性获取组件插槽绑定的数据-->
                <template slot="s2" slot-scope="res">
                    <table class="table table-bordered table-condensed">
                        <tr>
                            <th>序号</th>
                            <th>歌曲id</th>
                            <th>歌名</th>
                            <th>歌手</th>
                            <th>操作</th>
                            
                        </tr>
                        <tr v-for="song,index in res.musics">
                            <td>{{index+1}}</td>
                            <td>{{song.id}}</td>
                            <td>
                                {{song.name}}
                        
                            </td>
                            <td>
                                <span v-for="artist in song.artists">&nbsp;{{artist.name}}</span>
                            </td>
                            
                            <td width="18%">
                            
                                <button type="button" class="btn btn-primary btn-xs">播放</button>
                            </td>
                        </tr>
                    </table>
                </template>
                
            </page-frame>
        </div>
        
        <script type="text/javascript" src="js/vue.js" ></script>
        <script type="text/javascript" src="js/my-components.js" ></script>
        <script type="text/javascript">
            
            var vm = new Vue({
                el:"#container"
                
            });
        </script>
    </body>
</html>

千峰商城-springboot项目搭建-39-vue插槽作用域

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/128136.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!