gpt4 book ai didi

javascript - 我如何在 Vue.js 中声明响应式属性

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:21 24 4
gpt4 key购买 nike

这是 Vue-routes 应用程序的一部分,在其中一个路由中,我有两个属性 bga 和 bgb,它们将用于更改 div 的颜色。我不知道如何正确声明它们,我该怎么做?

我在 Chrome 控制台中收到此消息:

  • vue.js:597 [Vue 警告]:“数据”选项应该是一个函数,它返回组件定义中的每个实例值。警告@vue.js:597

  • vue.js:597 [Vue 警告]:属性或方法“bga”、“bgb”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保此属性是 react 性的,无论是在数据选项中,还是对于基于类的组件。请参阅:https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties .

ColorPage.js

const ColorPage = {
props:
['bga', 'bgb'],
data: {
bga: {
backgroundColor: ''
},
bgb: {
backgroundColor: ''
}
},
template: `
<div id="middle">
<label id="colorLabel"><h2>'Change Colors By Typing Their Names:'</h2></label>
</br>
<input type="text" class="colorInput" v-on:input="bga.backgroundColor = $event.target.value" placeholder="here...">
</br>
<input type="text" class="colorInput" v-on:input="bgb.backgroundColor = $event.target.value" placeholder="... and here!">
</div>
`
,

};

export default ColorPage

这应该用于更改“容器”div 和“顶部”div 的颜色:

Index.html

    <div id="container" v-bind:style="bga">
<div class="top" v-bind:style="bgb">
<div id="app">
<h1 id="vueHead">Vue routing</h1>
<h2 class="menu">
<router-link to="/">Color</router-link>
<router-link to="/main">Main</router-link>
<router-link to="/settings">Settings</router-link>
<router-link to="/vue">Vue</router-link>
</h2>

</div>
</div>
<router-view></router-view>
</div>

Vue 路由放在 index.js 中:

import MainPage from '../components/mainPage.js'
import ColorPage from '../components/colorPage.js'

const routes = [
{path: '/', component: ColorPage},
{path: '/main', component: MainPage},

];
const router = new VueRouter({
routes // short for `routes: routes`
});

var vm = new Vue({
el: '#container',
router,
});

最佳答案

当您创建组件时,Vue 的一些典型语法之间存在细微差别。例如Data Must Be a Function .

..
data: {
reactive: true,
}
..

在标准的 Vue 实例中,上面的代码完全没问题。但是,当您创建组件时,数据属性需要是一个返回对象的函数:

..
data() {
return { reactive: true }
}
..

另外propsdata 中的任何其他属性一样可供您使用。

关于javascript - 我如何在 Vue.js 中声明响应式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49819155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com