如何在Vue.js中声明反应式属性

约瑟夫杰夫

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

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

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

  • vue.js:597 [Vue警告]:属性或方法“ bga”,“ bgb”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保该属性在data选项中或对于基于类的组件都是反应性的。请参阅:https : //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: {
  reactive: true,
}
..

在标准的Vue实例中,上述情况非常好。但是,当您创建组件时,数据属性需要是一个返回对象的函数:

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

此外,您可以使用中的其他道具与中的其他属性一样data

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中对改装的反应式请求进行反抖动?

Spring Webflux-如何在WebFilter中调用反应式端点

如何在Spring反应式WebClient中返回Kotlin协程流

如何在R / Shiny中建立反应式数据框?

如何在反应式Android中打印控制台日志?

如何在反应式流中取消事件?

使用Vue.js设置反应式屏幕宽度

如何在闪亮的反应式数据表中添加注释

苗条的内部原理:反应式声明语法如何工作

如何在Vue.js中设置反应式窗口参数 window.innerWidth不起作用

ref vs Vue 3中的反应式?

如何在Vue 3的Composition API中的反应式嵌套对象上使用.value?

无法在Vue.js中将对象属性设置为反应式

如何从反应式WebClient响应中获取数据

Vue.js绑定反应式对象px参数

如何在Shiny中包含带有反应式MathJax元素的html代码?

在Vue + Vuex + Phaser反应式调用中丢失'this'范围

在 vue.js 中声明响应式数据属性?

Vue.js 反应式概念

如何在反应式编程中实现热流

Vue 中的反应式导航组件

如何在 Angular 中做恢复反应式语句?

Angular 反应式表单:如何在对话框中显示验证错误?

在 Vue.js 3 中搜索反应式数组

如何在 r 闪亮中创建多个反应式?

正确访问 Vue 3 中的反应式数组

如何在 quarkus 反应式响应过滤器中添加标头?

如何在 Svelte 的类属性中使用反应式函数?

Vue,Composition API:如何从反应式转换中跳过深度嵌套的属性?