vue中vm.$props的作用与应用场景
时间: 2023-06-06 09:07:14 浏览: 67
vm.$props是Vue实例的一个属性,用于获取组件实例的props对象。在组件内部,通过props接收父组件传入的参数,而在子组件内部,可以使用vm.$props获取这些参数的值。应用场景包括但不限于:在组件内部对外部传入的props进行处理和操作、检测外部传入的props值是否合法等。
相关问题
vue2中this.$vm.$set为undefined
在 Vue 2 中,`this.$vm.$set` 是 undefined 是因为 `$set` 这个方法并不存在于 Vue 实例中。`$set` 方法是用于在 Vue 中以响应式地方式设置对象属性的。在 Vue 2 中,可以使用 `Vue.set` 方法来实现同样的效果。
你可以将代码中的 `this.$vm.$set` 替换为 `Vue.set`,并传递对象、要设置的属性和对应的值作为参数。例如:
```javascript
Vue.set(this.$vm, 'propertyName', propertyValue);
```
这样就可以在 Vue 2 中实现类似于 `this.$vm.$set` 的功能了。
vue.$set和vm.$set有什么区别
根据提供的引用内容,可以得知`Vue.set()`和`vm.$set()`都可以用来向Vue实例中的响应式对象添加属性并触发视图更新。它们的区别在于`Vue.set()`可以用于全局对象,而`vm.$set()`只能用于当前实例。具体来说,`Vue.set()`的语法为`Vue.set(target, key, value)`,而`vm.$set()`的语法为`vm.$set(target, key, value)`。其中,`target`是要添加属性的对象,`key`是属性名,`value`是属性值。
举个例子,假设我们有一个Vue实例`vm`,其中有一个响应式对象`list`,我们想要向`list`中添加一个新属性`newProp`,可以使用以下两种方法:
```javascript
// 使用Vue.set()
Vue.set(vm.list, 'newProp', 'new value');
// 使用vm.$set()
vm.$set(vm.list, 'newProp', 'new value');
```
这两种方法的效果是一样的,都会向`list`中添加一个新属性`newProp`并触发视图更新。