javascript - 如何在 vuex.js 中将输入中输入的文本保存在“存储”中?我在哪里做错了?
问题描述
我受苦第三天。请帮帮我。vuex.js中如何将输入到input中的文本保存在“store”中,然后添加到同一个input本身的Value中。
我正在尝试这样做,但在某个地方我犯了一个错误。
HTML
<f7-list-input
label="Username"
name="username"
placeholder="Username"
type="text"
:value="newUserName"
@input="username = $event.target.value"
required validate
pattern="[3-9a-zA-Zа-яА-ЯёЁ]+"
v-model="saveUserName"
/>
脚本
export default {
data() {
return {
username: '',
password: '',
};
},
methods: {
signIn() {
const self = this;
const app = self.$f7;
const router = self.$f7router;
router.back();
app.dialog.alert(`Username: ${self.username}<br>Password: ${self.password}`, () => {
router.back();
});
},
saveUserName(){
this.$store.commit(saveName);
}
},
computed:{
userName(){
return this.$store.state.newUserName;
}
}
};
店铺
export default new Vuex.Store({
state:{
userNameStor: 'newUserName',
userPasswordStor:''
},
mutations:{
saveName(state){
userNameStor:newUserName;
return newUserName;
}
}
});
解决方案
让我们解释一下整个功能,然后是一些代码。
输入位于组件的模板部分。
该组件还包含一个脚本部分,它根据模板事件等触发代码。组件代码可以触发突变(用于状态更改),这是您在商店中存储内容的方式。
你有这个屏幕来存储流量:
1/ 组件模板事件 => 2/ 组件脚本代码 => 3/ 在存储上执行突变
另一方面,你有这个:组件计算属性中的 state => mapMutation => 组件模板。
在组件脚本中,您可以将存储值映射到组件的计算属性(使用 mapMutations 助手)。然后从组件计算属性映射到模板中的该字段。
1 - 您的模板@input 是用户操作更改输入时发生的事件。:value 是输入的值,以编程方式定义。v-model 是同时使用 @input 和 :value 的捷径。不要将它与 :value 和 @input 一起使用。
好的最小模板:
<f7-list-input
type="text"
:value="username"
@input="changeUsername"
/>
在脚本中,您只需要将 changeUsername 方法链接到突变(使用 mapMutation),并定义一个名称为 username 的计算属性,它是来自商店的用户名映射(使用 mapState)。
import {mapState, mapMutations} from "vuex"
export default {
methods:{
...mapMutations({
changeUsername:"saveName"
},
computed:{
...mapState({
username:state=>state.username
}),
}
};
推荐阅读
- python - MYSQL参数python问题与表名
- python - Pandas pd.ExcelWriter options={'strings_to_numbers': True} 有问题
- nlp - 将 unicode 字符的字符串转换为 unicode 类型
- oauth-2.0 - Spring Cloud Security:如何为 Oauth2 资源服务器/OAuth2 授权服务器支持多个身份提供者?
- laravel - Laravel 雄辩的集合查询
- html - 尝试使用 Excel VBA 在 IE11 中选择单选按钮
- arrays - Perl:将数组元素复制到单个字符串中
- c# - 我可以将我的本地 Azure 函数连接到我的 CosmosDB 数据库,但是当我在 Azure 上发布代码时,它无法再连接
- android - 将图像从 ImageView 保存到存储
- c# - StreamWriter 的默认 UTF-8 编码器不返回 Preamble