Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)

#单个slot

html:

<h3>#单个slot</h3>
<!-- 定义child01模板 -->
<template id="child01">
    <div>this is temp01 component!</div>
    <slot>
        如果没有分发内容,这里将会被显示
    </slot>
</template>
<div id="dr01">
    <child01></child01>
    <br /><br />
    <child01>
        <div>这里有新的内容01</div>
        <div>这里有新的内容02</div>
    </child01>
</div>

js:

//*********************************************************
//单个slot
var child01 = Vue.extend({
    template: "#child01",
});
var dr01 = new Vue({
    el: "#dr01",
    components: {
        "child01": child01
    }
});

结果展示:

  

#具名Slot(有名称的slot)

html:

<h3>#具名Slot(有名称的slot)</h3>
<!-- 定义模板child02 -->
<template id="child02">
    <slot name="s1"></slot>
    <slot></slot>
    <slot name="s2"></slot>
</template>
<div id="dr02">
    <child02>
        <div slot="s1">this is slot01</div>
        <div slot="s2">this is slot02</div>
        <div>this is a simple div01</div>
        <div>this is a simple div02</div>
    </child02>
</div>

js:

//*********************************************************
//具名slot
var child02 = Vue.extend({
    template: "#child02"
});
var dr02 = new Vue({
    el: "#dr02",
    components: {
        "child02": child02
    }
});

结果展示:

  

#编译作用域

html:

<h3>编译作用域</h3>
<template id="child03">
    <div>the two items following is child msg:</div>
    <div>{{cmsg_01}}</div>
    <div>{{cmsg_02}}</div>
    <br />
    <div>the three items following is parent msg:</div>
    <slot name="s1"></slot>
    <slot></slot>
    <slot name="s2"></slot>
</template>
<div id="dr03">
    <child03>
        <div slot="s1">{{msg01}}</div>
        <div slot="s2">{{msg02}}</div>
        <div>{{msg03}}</div>
    </child03>
</div>

js:

//*********************************************************
//编译作用域
var child03 = Vue.extend({
    data: function() {
        return {
            cmsg_01: "this is child msg_01",
            cmsg_02: "this is child msg_02",
        }
    },
    template: "#child03",
})
var dr03 = new Vue({
    el: "#dr03",
    data: {
        msg01: "this is parent msg01",
        msg02: "this is parent msg02",
        msg03: "this is parent msg03",
    },
    components: {
        "child03": child03
    }
});

结果展示:

  

时间: 2024-11-06 11:49:32

Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)的相关文章

Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)

#使用props传递数据 html:传递普通的字符串 <h3>#使用props传递数据</h3> <div id="dr01"> <div>组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据.可以使用 props 把数据传给子组件.</div> <br /> <child msg="hello, vue.js!"></child> <

Vue.js-----轻量高效的MVVM框架(七、表单控件绑定)

话不多说,先上完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/vue.js"></script> <title></title> </head> <body> <h2>表

Vue.js-----轻量高效的MVVM框架(五、计算属性)

#基础例子 <div id="dr01"> <h4>#基础例子</h4> <div> num01={{num01}}, num02={{num02}} <p>num01: vm定义的属性,num02:计算出来的属性</p> </div> </div> var dr01 = new Vue({ el: "#dr01", data: { num01: 10, }, compu

js实现一个简单的MVVM框架

以前都是默默地看园子里的文章,猥琐的点赞,今天也分享一下自己用js实现的一个简单mvvm框架. 最初只做了自动绑定事件,后面又参考学习了vue,knouckout以及argular实现方式,以及结合自己做WPF的一些经验,增加了属性绑定,今天又稍微整理了下,完善了部分功能,把代码提交到了码云:https://gitee.com/zlj_fy/Simple-MVVM 先简单介绍下用法: 1 <form class="form-horizontal" role="form&

mobi.css 轻量灵活的CSS框架

Mobi.css是一个专用于手机的轻量灵活的CSS框架(基础教程qkxue.net). 介绍 1. 压缩后只有3.6kb,低于Skeleton, Pure.css , Bootstrap v4等. 2. 大量使用 flexbox,非常灵活,主页自定义样式少于10行. 3. 专用于手机,桌面显示手机界面(手机app开发ty300.com),侧边栏显示向左或向右滑动键. 入门 您可在此界面下载该应用,可通过dist/mobi.min.css压缩文件. 可通过npm安装: npm install --

Vue.js:轻量高效的前端组件化方案(转载)

摘要:Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. Vue.js 是我在2014年2月开源的一个前端开发库,通过简洁的 API 提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在 GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. 开发

加速开发的最轻量的PHP数据库框架 Medoo

为什么选择 Medoo? -非常的轻量 只有 15KB,只需include即可. -简单 非常的容易学习,快速上手. -强大 支持各种常见的SQL查询. -兼容 支持各种数据:MySQL, MSSQL, SQLite, MariaDB, Oracle, Sybase, PostgreSQL. -安全 防止SQL注入 -免费 MIT 协议, 你可以进行任何修改. 必须 PHP 5.1以上,非常.特别.极其.强烈推荐:使用PHP 5.4以上版本并开启PDO支持. 你可以安装MySQL,MSSQL,S

vue 外卖app(3) 利用slot分发内容

1. 增加一个HeaderTop.vue <template> <header class="header"> <slot name="left"></slot> <span class="header_title"> <span class="header_title_text ellipsis">{{title}}</span> </

2016年31款轻量高效的开源JavaScript插件和库

目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库,但同时面临一个苦恼的问题:它们中的大多数实在是太累赘而且常常降低网站的性能.其实,其中也有不少轻量级的插件和库,它们不仅轻巧有用,而且不会影响网站的性能.本文就为大家整理了2016年以来30多款轻量级Javascript插件和库的列表,这些工具服务于特定的目标,并且它们能够非常有效和高效地实现目标. 不管你想创建一个图片库.一个滑动效果,个性化菜单还是其他接口元素,你都可以用这些插件和库轻易的实现.同时,你还可以使用这些插