2016 - 2024

感恩一路有你

搭建Vue项目环境

浏览量:2582 时间:2024-02-01 16:09:47 作者:采采

在使用Vue进行组件通信时,一般情况下我们会通过传递数据或者组件的状态来实现。然而,随着需要管理的状态越来越多,代码会变得庞大而混乱。为了解决这个问题,Vue引入了Vuex,将公用的状态抽离出来放在一个容器中,并通过一定的规则进行管理。

首先,在Git命令行中执行以下命令来搭建项目环境:

npm install --global vue-cli
vue init webpack vue-demo
cd vue-demo
npm install
npm run dev

接下来,删除默认的组件,并将整理如下:

Vuex的安装和配置

完成基本环境搭建后,开始安装Vuex。

npm install vuex --save-dev

在main.js中引入Vuex并注册store:

import Vue from 'vue'
import Vuex from 'vuex'
import store from './vuex/store'
(Vuex)
new Vue({
  el: '#app',
  store,
  template: '',
  components: { App }
})

在src目录下创建vuex目录,并在该目录下创建store.js,用于存放所有的状态。

// store.js
import Vue from 'vue'
import Vuex from 'vuex'
(Vuex)
const store  new ({
  state: {
    userName: 'John'
  }
})
export default store

将状态渲染到组件中

在components目录下创建组件,通过计算属性获取store中保存的状态值并渲染到组件中:

lt;templategt;
  lt;divgt;
    lt;h1gt;{{ userName }}lt;/h1gt;
  lt;/divgt;
lt;/templategt;
lt;scriptgt;
  export default {
    computed: {
      userName() {
        return this.$
      }
    }
  }
lt;/scriptgt;

在中引入组件:

lt;templategt;
  lt;div id"app"gt;
    lt;Main /gt;
  lt;/divgt;
lt;/templategt;
lt;scriptgt;
import Main from ''
export default {
  components: {
    Main
  }
}
lt;/scriptgt;

现在,页面上可以读取到store容器中state的userName的值。如果修改了userName的值,页面上也会相应地发生变化。

通过交互改变状态

我们可以通过一些交互操作来改变状态,观察组件是否能接收到状态的变化。

在components目录下创建组件:

lt;templategt;
  lt;divgt;
    lt;button @click"changeUserName"gt;Change Usernamelt;/buttongt;
  lt;/divgt;
lt;/templategt;
lt;scriptgt;
export default {
  methods: {
    changeUserName() {
      this.$  'Jane'
    }
  }
}
lt;/scriptgt;

当点击按钮时,改变store中userName的值,Main组件中的userName值也会相应地更新。这种方式非常直观易懂。

Vuex推荐的状态改变方法

Vuex提供了一种更优雅的方式来改变状态,即使用mutations。

在store.js中创建mutations对象,用于存放被修改的状态:

// store.js
import Vue from 'vue'
import Vuex from 'vuex'
(Vuex)
const store  new ({
  state: {
    userName: 'John'
  },
  mutations: {
    showUserName(state, msg) {
        msg
    }
  }
})
export default store

其中,showUserName是一个mutation函数,第一个参数state即为$,第二个参数msg需要从外部传入。通过中的点击事件来传递msg:

lt;templategt;
  lt;divgt;
    lt;button @click"changeUserName"gt;Change Usernamelt;/buttongt;
  lt;/divgt;
lt;/templategt;
lt;scriptgt;
export default {
  data() {
    return {
      msg: 'Jane'
    }
  },
  methods: {
    changeUserName() {
      this.$('showUserName', )
    }
  }
}
lt;/scriptgt;

这样,通过$将的值提交给showUserName,状态就会相应地改变。这就是Vuex的最基本用法和作用。

总结

通过以上的步骤,我们成功搭建了基于vue-cli和webpack的Vue2.0项目,并使用Vuex进行组件通信。通过Vuex,我们可以更好地管理和改变组件间的状态,使代码更加清晰和可维护。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。