Note that HTML attributes are case-insensitive and camelCased props need to use their kebab-case equivalents when using in-DOM templates. You should probably use "msg-head" instead of "msgHead".
报错
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<Vhead :msgHead='msg' />
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
Vhead = {
template: `
<div>
<h2>我是局部组件</h2>
<h2>msgHead:内容{{msgHead}}</h2>
</div>
`,
props: ['msgHead']
}
new Vue({
el: '#app',
data() {
return {
msg: 'hello Vue',
}
},
components: {
Vhead,
}
})
</script>
</body>
</html>
不能显示内容
原因
在html模板中,html解析不区分大小写,msgHead将自动转换为msghead
故命名时不要选择驼峰式
解决方法
修改这三行
将传入属性名修改为全部小写
<Vhead :msghead='msg' />
props: ['msghead']
<h2>msghead:内容{{msghead}}</h2>