vue.js - 如何更新以下代码中的 msg 变量?
问题描述
我在单个 Vue 组件中编写了以下代码。我对 Vue 很陌生。我想知道如何更新以下msg
变量并将更新后的值传递给此 Vue 组件中的模板:
<template>
<div class="dropzone">
<form id="dropzone" method='POST' enctype="multipart/form-data" v-on:drop="upload" @dragover.prevent>
<my-vue-component v-model="msg" ref="markdownEditor" />
</form>
</div>
</template>
<script>
export default {
data: () => {
return {
msg: 'zyx'
}
},
methods: {
upload: (e) => {
self.msg = '123'
}
}
}
</script>
我真的被困住了,谷歌将我重定向到的链接都没有超出我的范围。因为他们都在谈论new Vue({})
或不提供太多export default
。
我在这里做错了吗?
我也尝试过this.msg
,但后来我收到错误消息msg of undefined...
解决方案
改变这个:
upload: (e) => {
self.msg = '123'
}
对此:
upload (e) {
this.msg = '123'
}
请注意,这upload (e) {
是 的简写upload: function (e) {
。
主要变化是:
- 使用
this
而不是self
. - 不要使用箭头函数,因为它会绑定
this
到周围的作用域,在这种情况下就是全局作用域。您想要的是this
绑定到您的组件实例(实际上是一个 Vue 实例),因此您需要使用普通函数。Vue 试图确保绑定是正确的,但它不能用箭头函数做到这一点,因为它已经被绑定了。
像这样的组件中出现的配置选项几乎与您将传递给的配置选项相同new Vue
,因此如果您看到使用另一个的示例,几乎不会有任何区别。通常,当配置设置对其中一个或另一个没有意义时,这很明显。
推荐阅读
- java - xsd xsi:jsonschema 中的类型支持
- linux - 如何在异常时检索寄存器值?
- python - ValueError: int() 以 10 为底的无效文字:'' *Codewars
- javascript - 如何从 Typescript 中的函数参数中删除一些类型检查?
- python - 类型错误:参数 od type 'int' 在文件上不可迭代“
",第 31 行,在 - webpack - Webpacker 6 CSS 配置
- npm - 在 Mac 上通过 Supervisor 运行 Nuxt
- regression - 集成回归树法
- node.js - 在使用 Passport-azure-ad npm 模块和 OIDCStrategy 获取访问令牌方面需要帮助
- graphql - Apollo 服务器 - GraphQL - 语法错误:预期名称,找到)