原文地址 Writing multiple Vue components in a single file
在一个文件中编写多个组件是React的模式,其中一些文件包含多个组件。
走开发过程中,有些组件对文件/导出组件是“私有的”,因为没有其他组件需要使用它们。这个时候我们倾向于把它们写到一个文件中。
我们将使用vue-cli脚手架项目中的默认“Hello World”组件作为示例。
默认情况下,有两个文件,App和HelloWorld,HelloWorld接收msg属性并呈现它。
要将它们写在单个文件中,如果用React实现的话一般如下所示:
const HelloWorld = ({ msg }) => (<div>
<h1>Hello world</h1>
<div>{msg}</div>
</div>);
const App = () => (<div id="app">
<HelloWorld msg="Welcome to Your React App" />
</div>);
export default App;
由于React代码实际上就是普通的JavaScript,因此您可以在一个文件中定义多个组件。
在Vue中,它仍然是可能的,但它有点复杂,有多种方法可以实现:
示例仓库 vue-multiple-components-in-sfc
一. 使用render函数
<template>
<div id="app">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</template>
<script>
// inline component
const HelloWorld = {
props: ['msg'],
render(h