【发布时间】:2020-03-26 12:58:40
【问题描述】:
您好,我是 vue 新手,正在尝试了解它的单向数据绑定模型组件注册和传递道具。
在我的index.js 中有我的父组件,我现在想在其中渲染一个子组件
import Vue from 'vue'
import StyledTitle from './components/StyledTitle'
new Vue({
el: '#app',
components: {
StyledTitle,
},
})
子组件是StyledTitle.js
import Vue from 'vue'
import styled from 'vue-styled-components'
const StyledTitle = styled.h1`
font-size: 1.5em;
text-align: center;
color: #ff4947;
&:hover,
&:focus {
color: #f07079;
}
`
Vue.component('styled-title', {
props: ['text'],
components: {
'styled-title': StyledTitle,
},
template: `<StyledTitle>{{ text }}</StyledTitle>`,
})
export default StyledTitle
最后我的 HTML 是我希望呈现红色的 Hi
<div id="app">
<styled-title text="Hi"></styled-title>
</div>
虽然没有显示 HI,并且 props 值未定义。从反应过来,所以想知道为什么这不起作用,谢谢!
【问题讨论】:
-
@MarkMeyer 控制台中没有与应用程序相关的错误。不过,我将添加我的 vue devtools 的屏幕截图。 const StyledTitle = styled.h1`` 是声明样式组件的方式。
-
您是否有理由将
text作为道具传递,而不是仅将其设置在默认插槽中? -
@Phil Component def 如果我只是在开始标签和结束标签之间传递 Hi 就可以工作,但我想让道具适用于未来我可能有更多动态内容的情况,而不仅仅是来自API 或其他一些数据对象
标签: javascript vue.js vuejs2