vue出一個電商網站
npm install -g vue-cli
vue init webpack 專案名
npm install
npm install vue-router --save
啟用vue-router
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
main.js 進入點
src/router/index.js 路由配置檔案
vue component/pages 分頁內容
import Home from '@/components/HelloWorld'
//自定義元件
npm install --save axios vue-axios
載入axios
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
<router-view name="menu"></router-view>
2.新增一個menu.vue(同page.vue),載入navs的內容
3.把page.vue中的bottom刪除
4.在index.js中匯入menu.vue,且更改page.vue的路由配置
${process.env.APIPATH}/api/${process.env.CUSTOMPATH}/products
dev為開發中版本,prod為完成的版本
npm install bootstrap --save
npm install node-sass sass-loader --save
目前版本有些問題,建議先下載下列版本
npm install node-sass@4.14.1
npm install --save-d sass-loader@7.1.0
須在style標籤中加入 lang=scss
sigin ->admin/sigin
+ axios.defaults.withCredentials = true;
main.js加入:
router.beforeEach((to, from, next) => {
next()//防止全局守衛阻擋
})
在指定的路由加入:
meta: { requiresAuth: true }
index.js ->
{
path:'*',
redirect:'login' //需返回的頁面
}
login.vue:
if(response.data.success){
const token = response.data.token;
const expired = response.data.expired;
console.log(token, expired);
document.cookie = `hexToken=${token};expires=${new Date(expired)};`;
vm.$router.push('/backboard/products') //登入成功效果
}
dashboard.vue加入created:
created(){
const token = document.cookie.replace(/(?:(?:^|.*;\s*)hexToken\s*=\s*([^;]*).*$)|^.*$/, '$1');
this.$http.defaults.headers.common.Authorization = `${token}`;
}
npm install --save jquery popper.js
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}
data → state (管理資料)
methods → action (處理非同步&取得遠端資料)
computed → getter (資料在放上畫面之前的過濾)
→ mutations (處理同步&改變資料內容)