如果在标签中创建了一个对象 - 如何在tag-b中访问它?
标签-a.tag
<tag-a>
<script>
const o = {data: () => {return "something" }}
</script>
</tag-a>
标签-b.tag
<tag-b>
<script>
// access object o created in tag-a
</script>
</tag-b>
我尝试过使用mixin,但我认为这需要在父标记中注册?
答案 0 :(得分:1)
如果他们共享父母,你可以做这样的事情,但不建议这样做,因为标签会被耦合。
<parent>
<tag-a></tag-a>
<tag-b></tag-b>
</parent>
<tag-a>
<script>
this.o = 'Hi bro'
</script>
</tag-a>
<tag-b>
<span>{this.parent.tags.tag-a.o}</span>
</tag-b>
有关简单标记通信的更多信息: http://vitomd.com/blog/coding/tag-communication-in-riot-js-part-1/
更好的方法是使用可观察模式进行沟通。
首先创建store.js
//Store.js
var Store = function(){
riot.observable(this)
}
然后在index.html中安装标签之前,将商店添加到全局riot变量中,以便可以从任何标签访问
<script type="text/javascript">
riot.store = new Store()
riot.mount('* ')
</script>
然后在tag-a中,您可以触发发送信息
send_info() {
riot.store.trigger('send_to_b', 'Hello')
}
在tag-b中收到消息
riot.store.on('send_to_b', function(greeting) {
self.hi = greeting
})
更多信息:http://vitomd.com/blog/coding/tag-communication-in-riot-js-part-2/