JavaScript

Vuex 發出指令的 Actions

在Vuex有四大物件元素,分別是State、Mutations、Getters、Actions 延續Vuex系列筆記 如果要進行非同步的AJAX,就要在Actions裡面操作 例如我們在store.js裏面用fetch,去AJAX(舉例說明而已) import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store({ state:{ todos:[ ], }, actions:{ ajaxTodos(store){ fetch(`$(url)/todos`) .then(re => re.json()) .then(ajax到的東西 => { //呼叫某個函式更新state }) } } }); export
SimonAllen

Vuex Modules 模組劃分

假如今天的專案有很多組件,並且有很多功能需要Vuex來管理, 那麼Vuex的State、Mutations、Getters、Actions可能會塞太多東西,變得臃腫龐大。 例如今天在store.js是這樣的 我們有很多功能像是代辦清單(todos)、購物車(cart)、產品(product)...etc 這些功能全寫進一個Vuex store,那麼store之後會變得太過攏長 import Vue from ‘vue'; import Vuex from ‘vuex’; Vue.use(Vuex); const store = new Vuex.Store({ state:{ todos:[ ], cart:[ ], product:[ ], //…etc }, mutations:{ //…etc }, //下略... }); 這種時候我們可以用Modules來幫我們適當地拆開、劃分不同Vuex物件, 把const store = new Vuex.
SimonAllen

Vuex 取得狀態的 Getters

在Vuex有四大物件元素,分別是State、Mutations、Getters、Actions 如果把Vuex用Vue實例的屬性來比喻(注:這樣比喻是錯的 不精準得,但方便聯想) state存放資料類似data Mutations設定方法函式讓人能主動呼叫、觸發,類似methods 那Getters呢? Getters類似computed 例如現在store.js中是這樣 import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store({  state:{     todos:[ ],  },  getters:{  } }); export default store; state裡有個陣列todos代辦清單,現在我們想知道有哪些代辦是沒做的? 我們可能會在(.vue)組件這樣寫(注意這只是範例說明,
SimonAllen

Vue router 基本設置

首先用vue cli建立專案,這裡用webpack-simple模板建立 vue init webpack-simple 專案名稱 cd 專案名稱 npm install nom rub dev 接著安裝vue router npm install -s vue-router 編輯器或IDE打開專案,要用Vue-router,首先到main.js檔案上方import程式碼區塊新增 import 名稱 from 'vue-router' 這裡我這樣寫 import VueRouter from 'vue-router' 接著程式碼在「import」和「new Vue({」區塊間新增 Vue.use(名稱) 因為我import的名稱是VueRouter,所以程式碼自然是新增 Vue.use(
SimonAllen

Vue props 命名

我們會用props來獲取資料,但是如果是直接定義在HTML的模板: 假設組件的props是 props: ['myData'] HTML的模板要寫 <div :my-data = "data"></div> 因為HTML沒有大寫 假設是寫在JS、.vue組件內的template,用字串模板` ` template:`<div :myData = "data"></div>` 就沒有大寫的限制囉! vue組件的props:[ ]是單向資料流,也是就是由上而下的傳遞資料,跟v-model的雙向綁定不一樣。
SimonAllen