一、事件传参

  1. <li v-for="city of hotCities" :key="city.name" @click="handleClick(city.name)">{{city.name}}</li>

二、传参参数给vuex

  1. methods: {
  2. handleClick(city){
  3. this.$store.commit("changeCity",city);
  4. //同时实现路由跳转
  5. this.$router.push('/movie/inTheaters')
  6. }
  7. }

三、vuex中改变数据

  1. export default new Vuex.Store({
  2. state: {
  3. title:"首页",
  4. city:"武汉"
  5. },
  6. mutations: {
  7. changeTitle(state,title){
  8. state.title = title
  9. },
  10. changeCity(state,city){
  11. state.city = city;
  12. }
  13. },
  14. actions: {
  15. }
  16. })

四、使用缓存实现数据持久化

技术要点

  1. localStorage.setItem("city",city);
  2. localStorage.getItem("city")
  3. //技术要点,使用localStorage的时候使用try-catch对代码进行包裹
  4. try{
  5. localStorage.setItem("city",city)
  6. }catch(e){
  7. console.log(e)
  8. }
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. function getCity(){
  5. let defaultCity = "武汉";
  6. try{
  7. if(localStorage.getItem("city")){
  8. defaultCity = localStorage.getItem("city")
  9. }
  10. }catch(err){
  11. console.log(err)
  12. }
  13. return defaultCity
  14. }
  15. export default new Vuex.Store({
  16. state: {
  17. title:"首页",
  18. city:getCity()
  19. },
  20. mutations: {
  21. changeTitle(state,title){
  22. state.title = title
  23. },
  24. changeCity(state,city){
  25. state.city = city;
  26. localStorage.setItem("city",city)
  27. }
  28. }
  29. })