【发布时间】:2023-03-10 02:42:01
【问题描述】:
- 我设置了一个 Vue.js CLI 项目。
- 在页面上,我想在
data()中定义一个变量,然后在我的模板中使用它。 - 为什么下面的代码告诉我:
属性或方法“消息”未在实例上定义,但 在渲染期间引用。确保声明反应数据 数据选项中的属性。
<template>
<div>
<h1>Page 2</h1>
<p> You can go back to
<router-link to="/">home</router-link>.</p>
<p>[{{message}}]</p>
</div>
</template>
export default {
name: "Page2",
data() {
return {
message: "here it is"
}
}
}
还有这段代码:
<button class="btn" @click="test()">the test</button>
</p>
</div>
</template>
export default {
name: "Page2",
data() {
return {
message: "here it is"
}
},
methods: {
test() {
console.log('test');
}
}
}
类似地告诉我:
属性或方法“test”未在实例上定义,但 在渲染期间引用。确保声明反应数据 数据选项中的属性。
我还需要做什么才能使这些变量和方法在我的页面模板中可用?
这种代码结构在其他 Vue.js CLI 项目中也有效,因此它很可能是在项目环境中的某个地方没有设置正确的东西。
例如,这段代码在另一个项目中工作:
<template>
<div class="start alert alert-success" role="alert">
{{ msg }}
</div>
</template>
<script>
export default {
name: 'start',
data() {
return {
msg: 'Please choose an option.'
}
}
}
</script>
它适用于Home 页面,但不适用于Page1 或Page2。我的index.js 页面如下所示:
import Vue from "vue";
import Router from "vue-router";
import Home from "@/components/Home";
import Page1 from "@/components/Page1";
import Page2 from "@/components/Page2";
Vue.use(Router);
export default new Router({
routes: [
{
path: "/",
name: "Home",
component: Home
},
{
path: "/page1",
name: "Page1",
component: Page1
},
{
path: "/page2",
name: "Page2",
component: Page2
}
]
});
【问题讨论】:
-
您确定这些警告是针对这些组件的吗?您不会尝试在尚未定义它们的另一个组件中使用
message或test?这让我有时 -
不,这是我刚开始的一个非常简单的项目。如上面的代码所示,我定义了
template部分,然后在其下方定义了export default部分。奇怪的是另一个项目中的另一个页面具有相同的结构。我是否必须设置某种配置才能让模板和导出默认部分相互了解? -
奇怪,它在 Hello.vue 页面上可以正常工作,但在其他页面上却不行。
-
我需要更改
/src/router/index.js文件中的任何内容吗? (张贴在上面)。
标签: vue.js