javascript - 如何在vue js中使用watch功能

标签 javascript vue.js vuejs2 vue-component vue-router

您能告诉我如何在 vue js 中使用 watch 功能吗?我尝试使用但出现此错误。

vue.js:485 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "m"

found in

---> <AddTodo>
       <Root>

https://plnkr.co/edit/hVQKk3Wl9DF3aNx0hs88?p=preview

我在主组件中创建了不同的组件和监视属性

var AddTODO = Vue.extend({
    template: '#add-todo',
    props: ['m'],
    data: function () {
        return {
            message: ''
        }
    },
    methods: {
        addTodo: function () {
            console.log(this.message)
            console.log(this.m);
            this.m =this.message;
        },
    },
});

当我尝试添加item时,我收到此错误。 重现此错误的步骤

  1. 在输入字段中输入任何内容,然后点击添加按钮

最佳答案

this.m =this.message;

这行是问题所在,

建议不要直接修改prop...

而是创建一个数据属性,然后修改它。

它显示警告,因为您正在修改 Prop 项,只要父组件重新渲染, Prop 值就会被覆盖。

关于javascript - 如何在vue js中使用watch功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46012082/

相关文章:

用于纯数字或以百分比结尾的数字的 JavaScript 正则表达式

javascript - 禁用输入文本

javascript - Karma Browserify bundle 错误

javascript - 子方法未定义 vue.js

javascript - 如何在 Node.js 服务器上部署 Vue.js 应用程序

vue.js - Vue 计算属性不响应状态变化

javascript - 使用通过数组传递的对象时出现问题

javascript - 如何使用 jquery 使 2 个按钮切换 css 并仅使用 1 个按钮。不显示隐藏/显示

javascript - 为 Vue Select2 包装器组件使用动态 AJAX URL

javascript - Vue.js 编辑动态组件中的变量