Vue.js 分离条件渲染的开始标记和结束标记
我不能做这个标签分离。基本上,我有一个单独的页眉和页脚,因为没有更好的单词,但我不能像在服务器端生成的标记中那样在Vue中这样做 对于这个问题,是否有解决方法或更优雅的解决方案 我不能做这个标签分离 这是正确的,因为Vue使用的是完整的文档模型,所以您无法按部分将元素组合在一起 我会选择一个定制的包装组件。类似于 {{label}} {{label}} 导出默认值{ 名称:“FieldWrapper”, 道具:{ 换行:布尔, 标签:字符串 } } 像这样使用它 描述 这里有更多的东西 组件中有一点重复,但对于您的用例,我认为这是可以接受的 我不能做这个标签分离 这是正确的,因为Vue使用的是完整的文档模型,所以您无法按部分将元素组合在一起 我会选择一个定制的包装组件。类似于 {{label}} {{label}} 导出默认值{ 名称:“FieldWrapper”, 道具:{ 换行:布尔, 标签:字符串 } } 像这样使用它 描述 这里有更多的东西 组件中有一点重复,但对于您的用例,我认为这是可以接受的Vue.js 分离条件渲染的开始标记和结束标记,vue.js,vuejs2,vue-component,Vue.js,Vuejs2,Vue Component,我不能做这个标签分离。基本上,我有一个单独的页眉和页脚,因为没有更好的单词,但我不能像在服务器端生成的标记中那样在Vue中这样做 对于这个问题,是否有解决方法或更优雅的解决方案 我不能做这个标签分离 这是正确的,因为Vue使用的是完整的文档模型,所以您无法按部分将元素组合在一起 我会选择一个定制的包装组件。类似于 {{label}} {{label}} 导出默认值{ 名称:“FieldWrapper”, 道具:{ 换行:布尔, 标签:字符串 } } 像这样使用它 描述 这里有更多的东西 组件中有
PHP的输出是一个字符串,因此您可以将其设置为+'hello'+,但对于JS framework,它们使用HtmleElement,因此您不能在这里执行相同的操作。我认为您需要习惯使用组件,也就是PHP。例如:
<template>
<div>
<template v-if="isFieldsetElement">
<fieldset>
<legend>Label Here</legend>
</template>
<template v-else>
<label>Label Here</label>
</template>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
<template v-if="isFieldsetElement">
</fieldset>
</template>
</div>
</template>
对于上面的源,页眉、页脚、内容都表示一个组件,而内容通常有多个子组件
所以,标记分离从来都不是一个好的解决方案,包括PHP模板
<?php
class View() {
public $header; public $footer; public $content;
}
$view = new View(); $view->header = 'Hello';...
?>
<html>
<body>
<header>
<?php echo $view->header?>
</header>
<div id="root">
<?php echo $view->content?>
</div>
<footer>
<?php echo $view->footer?>
</footer>
</body>
</html>
或者与您在php中使用的方法相同:
<template>
<div>
<template v-if="isFieldsetElement">
<fieldset>
<legend>Label Here</legend>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
</fieldset>
</template>
<template v-else>
<label>Label Here</label>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
</template>
</div>
</template>
PHP的输出是一个字符串,因此您可以将其设置为+'hello'+,但对于JS framework,它们使用HtmleElement,因此您不能在这里执行相同的操作。我认为您需要习惯使用组件,也就是PHP。例如:
<template>
<div>
<template v-if="isFieldsetElement">
<fieldset>
<legend>Label Here</legend>
</template>
<template v-else>
<label>Label Here</label>
</template>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
<template v-if="isFieldsetElement">
</fieldset>
</template>
</div>
</template>
对于上面的源,页眉、页脚、内容都表示一个组件,而内容通常有多个子组件
所以,标记分离从来都不是一个好的解决方案,包括PHP模板
<?php
class View() {
public $header; public $footer; public $content;
}
$view = new View(); $view->header = 'Hello';...
?>
<html>
<body>
<header>
<?php echo $view->header?>
</header>
<div id="root">
<?php echo $view->content?>
</div>
<footer>
<?php echo $view->footer?>
</footer>
</body>
</html>
或者与您在php中使用的方法相同:
<template>
<div>
<template v-if="isFieldsetElement">
<fieldset>
<legend>Label Here</legend>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
</fieldset>
</template>
<template v-else>
<label>Label Here</label>
<span> Description </span>
<img src="image.png" />
<div>more stuff here </div>
</template>
</div>
</template>
使用:
使用:
不可以,Vue使用完整的文档模型,因此您无法通过parts@Phil是的,但当您需要在组件周围包装标记时,必须有一些变通方法?这是一个非常常见的场景,对吗?不,Vue使用完整的文档模型,因此您无法通过parts@Phil是的,但当您需要在组件周围包装标记时,必须有一些变通方法?这是一个很常见的场景,对吧?这很聪明。从未想过使用动态组件来呈现普通的旧HTML标记。这非常聪明。从未想过使用动态组件来呈现普通的旧HTML标记。