vue.js - 我的 html 代码无法访问我的 vue 组件
问题描述
这是我使用 vue 的第二天。我已经在使用 webpack 和 vue-cli,但我想了解如何使所有内容都在一个文件中工作。我开发了一个运行良好的代码,但我想重构代码以拥有一个组件,我以后可以使用它来生成充满颜色变化图块的屏幕。
我试过Vue.component('name', {})
了,但没有结果,因为在控制台中我看到[Vue warn]: The "data" option should be a function that returns a per-instance value in component definitions.
并且[Vue warn]: Unknown custom element: <brick> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
此代码运行良好:
<html>
<head>
<title>v pavle</title>
<script type="text/javascript" src="https://vuejs.org/js/vue.js"></script>
</head>
<body>
<div id="app"></div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
template:
'<div v-bind:style="styleobj" v-on:mouseover="changebgcolor" v-on:mouseout="changebgcolor"></div>',
data: {
styleobj: {
width: "100px",
height: "100px",
backgroundColor: "white"
}
},
methods: {
changebgcolor: function() {
this.styleobj.backgroundColor = Math.floor(
Math.random() * 16777215
).toString(16);
}
}
});
</script>
</body>
</html>
该代码提供了一切,但不是我想看到的:(
<html>
<head>
<title>v pavle</title>
<script type="text/javascript" src="https://vuejs.org/js/vue.js"></script>
</head>
<body>
<div id="app">
<brick></brick>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app"
});
var brick = Vue.component("brick", {
template:
'<div v-bind:style="styleobj" v-on:mouseover="changebgcolor" v-on:mouseout="changebgcolor"></div>',
data: {
styleobj: {
width: "100px",
height: "100px",
backgroundColor: "white"
}
},
methods: {
changebgcolor: function() {
this.styleobj.backgroundColor = Math.floor(
Math.random() * 16777215
).toString(16);
}
}
});
</script>
</body>
</html>
对你来说这似乎很容易,但花了 7 小时后,对我来说就没有什么了,只是问你 SO
解决方案
好的,我会回答你的2个问题。首先,关于数据,它必须是一个函数。所以你必须这样写:
data() {
return {
styleobj: {
width: "100px",
height: "100px",
backgroundColor: "white"
}
}
}
之后,您忘记在 Vue 实例中引用您的组件。试试看:
var vm = new Vue({
el: "#app",
components: {
brick: brick
}
})
希望它会奏效。
推荐阅读
- python-3.x - 如果单元格为空,则查找并捕获相邻单元格的值
- python - 为什么它说在 Pygame 上无法打开shooting_game\player.png?
- reactjs - forwardRef 不适用于 react-bootstrap 自定义下拉菜单的 Styled 组件
- python - 多层或组的 Networkx 绘图布局
- java - HashMap 中的 keySet() 方法可能更简洁
- vim - 从 vim 交互式运行 python 代码
- asp.net-mvc - 如何在不同的服务器上部署参考 dll
- kubernetes - 当第二个 pod 被安排到 k8s 中的同一个容器时,就绪探测失败
- llvm - 同一个基本块中的所有 LLVM PHI 指令是否总是具有相同的传入块集?
- javascript - 当我在计时器上传入过滤变量时,组件没有更新