написать впереди
Эта статья направлена на отработку нескольких распространенных методов vuex на простом примере, чтобы новички могли запускать пример vue + vuex с максимальной скоростью.
Изучение vuex требует от вас некоторых базовых знаний и навыков использования vue. Я считаю, что у студентов, которые нажали на эту статью, есть эта основа.
Кроме того, те, кто уже знаком с vuex, могут игнорировать эту статью.
Создание проекта на основе vue
Создайте проект vue на основе каркаса vue-cli Общие команды нпм:
npm i vue-vli -g
vue --version
vue init webpack 项目名
Войдите в каталог проекта и используйте npm run dev, чтобы сначала попытаться запустить его.
В общем проблем не будет, после успешного запуска теста можно писать нашу vuex программу.
Пример с vue
Чтобы использовать vuex, вы должны сначала установить vuex, командой:
npm i vuex --save
Представьте нашу супер простую демонстрацию, родительский компонент, дочерний компонент, родительский компонент имеет данные, дочерний компонент имеет данные, вы хотите поместить оба данных в состояние vuex, а затем родительский компонент может изменить свои собственные и данные дочернего компонента. Дочерние компоненты могут изменять родительские компоненты и свои собственные данные.
Сначала поместите рендеры, эффект инициализации выглядит следующим образом:
Если вы хотите инициировать данные дочернего компонента через родительский компонент, нажмите кнопку «Изменить текст дочернего компонента», и эффект будет следующим:
Если вы хотите изменить данные родительского компонента через дочерний компонент, нажмите кнопку «Изменить родительский компонентный текст» в компоненте для детей, и эффект выглядит следующим образом:
Знакомство с файлами кода
Первый — это компонент Parent.vue.
<template>
<div class="parent">
<h3>这里是父组件</h3>
<button type="button" @click="clickHandler">修改自己文本</button>
<button type="button" @click="clickHandler2">修改子组件文本</button>
<div>Test: {{msg}}</div>
<child></child>
</div>
</template>
<script>
import store from '../vuex'
import Child from './Child.vue'
export default {
computed: {
msg(){
return store.state.testMsg;
}
},
methods:{
clickHandler(){
store.commit('changeTestMsg', '父组件修改自己后的文本')
},
clickHandler2(){
store.commit('changeChildText', '父组件修改子组件后的文本')
}
},
components:{
'child': Child
},
store,
}
</script>
<style scoped>
.parent{
background-color: #00BBFF;
height: 400px;
}
</style>
Ниже представлен подкомпонент Child.vue.
<template>
<div class="child">
<h3>这里是子组件</h3>
<div>childText: {{msg}}</div>
<button type="button" @click="clickHandler">修改父组件文本</button>
<button type="button" @click="clickHandler2">修改自己文本</button>
</div>
</template>
<script>
import store from '../vuex'
export default {
name: "Child",
computed:{
msg(){
return store.state.childText;
}
},
methods: {
clickHandler(){
store.commit("changeTestMsg", "子组件修改父组件后的文本");
},
clickHandler2(){
store.commit("changeChildText", "子组件修改自己后的文本");
}
},
store
}
</script>
<style scoped>
.child{
background-color: palegreen;
border:1px solid black;
height:200px;
margin:10px;
}
</style>
Наконец, файл конфигурации vuex
import Vue from 'vue'
import Vuex from 'vuex';
Vue.use(Vuex)
const state = {
testMsg: '原始文本',
childText:"子组件原始文本"
}
const mutations = {
changeTestMsg(state, str){
state.testMsg = str;
},
changeChildText(state, str){
state.childText = str;
}
}
const store = new Vuex.Store({
state: state,
mutations: mutations
})
export default store;
постскриптум
Через этот пример Vuex понимаете общую конфигурацию и метод вызовов Vuex. Я надеюсь, что это поможет студентам, которые не очень знакомы с Vuex, чтобы быстро начать работу с проектом Vuex.
Т.к вещей не много, да и сам я в этом новичок, я не буду кидать этот пример на GitHub.Если вы попробуете этот пример, но одноклассники, которые не запущены, могут общаться друг с другом.
Программирование фокусируется на практике, поторопитесь и бегите.
Об этой статье
Я был бы рад, если бы эта статья помогла вам. Добро пожаловать, как, чтобы помочь большему количеству студентов!