在Vue中,您可以拥有类似的东西。
<!-- index.php -->
<div id="app">
<section>
<main>
<h1>Main</h1>
<some-component></some-component>
</main>
<aside>
<h2>Side</h2>
<another-component></another-component>
</aside>
</section>
</div>
<script>
Vue.component('some-component', { template: '<div>hello - {{ this.$parent.test }}</div>' });
Vue.component('another-component', { template: '<div>world - {{ this.$parent.test }}</div>' });
new Vue({el: '#app', data: () => ({test: 123})});
</script>
这将呈现所有已注册的组件,最终您将得到类似
<div id="app">
<section>
<main>
<h1>Main</h1>
<div>hello - 123</div>
</main>
<aside>
<h2>Side</h2>
<div>world - 123</div>
</aside>
</section>
</div>
如何使用React完成同一件事?
我尝试过类似的愚蠢的事情
class App extends Component {
render() {
return <div>{this.props.kids}</div>
}
}
if (document.getElementById('app')) {
ReactDOM.render(<App kids={document.getElementById('app').innerHTML)} />, document.getElementById('app'));
}
总体目标是能够拥有常规的html模板,然后在需要的地方分散各种反应组件。
理想情况下,它应该包含一个类似非渲染的组件,该组件可以使用上下文api提供向下的全局数据。
慕田峪4524236
相关分类