Recommended tutorial: VUE.JS tutorial
Vue has the famous family bucket series , including vue-router
, vuex
, vue-resource
. Coupled with the build tool vue-cli
and sass
style, it is the core component of a complete vue project.
To sum it up:
1. Project building tool
## 2. Routing
3. Status management
4. http request tool.
The following is a separate introductionPreface: Vue’s two core ideas: Componentization and data-driven. Componentization: split the whole into reusable individuals, data-driven: directly affect the BOM display through data changes, avoiding DOM operations.
1. Vue-cli is the scaffolding for quickly building this single-page application.
# 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # 安装依赖,走你 $ cd my-project $ npm install $ npm run dev
2. vue- router
Installation: npm installvue-router If you use it in a modular project, you must explicitly install the routing function through Vue.use():import Vue from'vue' import VueRouter from'vue-router' Vue.use(VueRouter)
3. vuex
The state management developed by vuex specifically for vue.js applications can be understood as global data management. Vuex is mainly composed of five parts: state action, mutation, getters, and mudle. The usage process is: The above four parts can be directly called in the component except mudle,1, state
Similar to the data of the vue object, use To store data and status. The stored data is responsive. If the data changes, the components that rely on the data will also change accordingly. Examples of two ways to get state: 1.store.getters['getRateUserInfo']2. ...mapGetters({ UserInfo: 'login/UserInfo', // User information menuList: 'getMenuList', // approve freight rate approval RateUserInfo: 'getRateUserInfo' // Rate user information })Note: Global state and getters can be mapped to the computed properties of the current component through mapState.2, actions
Action is triggered through the store.dispatch method: action supports asynchronous calls (api can be called), mutations only support operation synchronization, and the action submitted is mutation rather than changing state directly. For example:const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }, actions: { increment (context) { context.commit('increment') } } })
3, mutation
Each mutation has a string event type (type) and a callback function (handler). This callback function is where we actually make the state changes, and it accepts state as the first parameter.4. Getters
Vuex allows us to define "getters" in the store (which can be considered as computed properties of the store). Just like computed properties, the return value of a getter will be cached according to its dependencies, and will only be recalculated when its dependency values changeconst getters = { getRateInitData: state => state.rateInitData, getchooseRateObj: state => state.chooseRateObj, getSearchRateParams: state => state.searchRateParams, getSearchRateResult: state => state.searchRateResult, getRateUserInfo: state => state.RateUserInfo, getMenuList: state => state.menuList, getRateQueryParams: state => state.rateQueryParams, getRateQueryResult: state => state.rateQueryResult, getCheckRateDetailParams: state => state.checkRateDetailParams, getReferenceCondition: state => state.referenceCondition, getWaitApprovalParams: state => state.waitApprovalParams }
4. axios
Axios is an http request package. Vue official website recommends using axios for http calls. Installation:npm install axios --save
1. Send a GET request
//通过给定的ID来发送请求 axios.get('/user?ID=12345') .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); }); //以上请求也可以通过这种方式来发送 axios.get('/user',{ params:{ ID:12345 } }) .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); }); 2、发送一个POST请求 axios.post('/user',{ firstName:'Fred', lastName:'Flintstone' }) .then(function(res){ console.log(res); }) .catch(function(err){ console.log(err); });
The above is the detailed content of What are the vue family buckets?. For more information, please follow other related articles on the PHP Chinese website!