html5 slot,vue之组件交互与slot

本文深入解析Vue中的组件间通信和slot功能,通过实例演示如何利用MVVM模式实现数据驱动的DOM操作。了解如何利用Vue的`$children`和`$refs`,以及slot的灵活应用,提升开发效率。
摘要由CSDN通过智能技术生成

1、兄弟组件交互

![](https://box.kancloud.cn/53143ece69e2b24dcd0986016fc7e93c_217x322.jpg)

demo.html

~~~

兄弟组件交互

.green{background-color: green;-webkit-transition: all .5s ease;transition: all .5s ease;}

.greenActive{background-color: #f00;}

var app = new Vue({

el: '#app',

data: {

worldStyle: {

width: '100px',

height: '100px',

border: '1px solid #ddd',

marginTop: '10px'

}

},

components: {

'Hello': {

template: '

{{ say }}

',

data: function() {

return {

helloStyle: {

width: '200px',

height: '200px',

backgroundColor: '#ccc'

},

say: 'hello'

};

},

methods: {

clickFn: function() {

this.say = 'hello';

app.$children[1].$data.classA = 'green greenActive'

}

}

},

'World': {

props: {

title: String

},

data: function() {

return {

classA: 'green'

};

},

template: '

{{ title }}world
',

methods: {

clickFn: function() {

this.classA = 'green';

app.$children[0].$data.say = 123;

// app.$refs.hello.say = 333; 使用ref来实现

}

}

}

}

});

~~~

上述无疑就是VUE的核心所在,MVVM模式

![](https://box.kancloud.cn/bfa87d3472f4be48c371930881f159c0_637x328.jpg)

在DOM与JS之间加个中间件VUE,使得DOM与JS的交互更便捷。。

写到这里突然感觉写不下去了,毕竟没有在项目中使用,而且VUE API中的东西稍多,一一介绍不如看VUE API。。

只想说在合适的地方使用VUE,不要偏激。。

2、slot卡槽

![](https://box.kancloud.cn/a8ff918709c861e994b312146177c4fc_400x396.jpg)

demo.html

~~~

slot

Copyright 2016 Evan You

main

Vue.component('blog-post', {

render: function (createElement) {

var header = this.$slots.header;

var body = this.$slots.default;

var footer = this.$slots.footer;

return createElement('div', [

createElement('header', '123'),

createElement('main', body),

createElement('footer', footer)

])

}

})

new Vue({

el: '#demo'

});

~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值