±à¼ÍƼö: |
±¾ÎÄÀ´×Ô×÷Õß¼òÊ飬ÎÄÕÂÖ÷Òªvuex£¬vue-router£¬Axios£¬font-awesome£¬mockjsµÈ¼¸·½Ãæ´Ó°²×°£¬Ó¦Ó㬰¸ÀýµÈ·½Ãæ½éÉÜÁËÈ«ÎÄ¡£ |
|
vuex-->
¹Ù·½ÍøÕ¾
Vuex ÊÇÒ»¸öרΪ Vue.js Ó¦ÓóÌÐò¿ª·¢µÄ״̬¹ÜÀíģʽ¡£Ëü²ÉÓü¯ÖÐʽ´æ´¢¹ÜÀíÓ¦ÓõÄËùÓÐ×é¼þµÄ״̬£¬²¢ÒÔÏàÓ¦µÄ¹æÔò±£Ö¤×´Ì¬ÒÔÒ»ÖÖ¿ÉÔ¤²âµÄ·½Ê½·¢Éú±ä»¯¡£
°²×°
ÒýÓÃ
ÔÚÒ»¸öÄ£¿é»¯µÄ´ò°üϵͳÖУ¬Äú±ØÐëÏÔʽµØÍ¨¹ý Vue.use() À´°²×°
Vuex£º
import Vue from
'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
}
}) |
°¸Àý
Ä£¿é»¯

Ä£¿éÄڹؼüº¯Êý

vue-router
--> ¹Ù·½ÍøÕ¾
Óà Vue.js + vue-router ´´½¨µ¥Ò³Ó¦Óã¬ÊǷdz£¼òµ¥µÄ¡£Ê¹Óà Vue.js £¬ÎÒÃÇÒѾ¿ÉÒÔͨ¹ý×éºÏ×é¼þÀ´×é³ÉÓ¦ÓóÌÐò£¬µ±ÄãÒª°Ñ
vue-router Ìí¼Ó½øÀ´£¬ÎÒÃÇÐèÒª×öµÄÊÇ£¬½«×é¼þ(components)Ó³É䵽·ÓÉ(routes)£¬È»ºó¸æËß
vue-router ÔÚÄÄÀïäÖȾËüÃÇ¡£
> °²×°
cnpm install vue-router
--save |
ÒýÓÃ
Èç¹ûÔÚÒ»¸öÄ£¿é»¯¹¤³ÌÖÐʹÓÃËü£¬±ØÐëҪͨ¹ý Vue.use() Ã÷È·µØ°²×°Â·Óɹ¦ÄÜ£º
import Vue from
'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
}
]
}) |
°¸Àý
·ÓÉÅäÖÃ

·ÓÉÌø×ªÏÞÖÆ

·ÓɼàÌý

Axios
Axios ÊÇÒ»¸ö»ùÓÚ promise µÄ HTTP ¿â£¬¿ÉÒÔÓÃÔÚä¯ÀÀÆ÷ºÍ
node.js ÖС£
- ´Óä¯ÀÀÆ÷Öд´½¨ XMLHttpRequests
- ´Ó node.js ´´½¨ http ÇëÇó
- Ö§³Ö Promise API
- À¹½ØÇëÇóºÍÏìÓ¦
- ת»»ÇëÇóÊý¾ÝºÍÏìÓ¦Êý¾Ý
- È¡ÏûÇëÇó
- ×Ô¶¯×ª»» JSON Êý¾Ý
- ¿Í»§¶ËÖ§³Ö·ÀÓù XSRF |
°²×°
cnpm install
axios --save |
ÒýÓÃ
import axios
from 'axios'
export default {
post(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(response => {
resolve(response);
}, err => {
reject(err);
})
.catch((error) => {
reject(error)
})
})
}
} |
°¸Àý
»ù±¾ÅäÖÃ

restful api·â×°

ÒµÎñ½Ó¿Ú·â×°

vuexÖе÷ÓÃÒµÎñ½Ó¿Ú
µ÷È¡²½Öè: vue×é¼þ¶¯×÷´¥·¢ÍøÂçÇëÇó,µ÷ÓÃstoreÈ¥·Ö·¢ÏûÏ¢ÀàÐÍÒÔ¼°ÏûÏ¢¸½´øÊý¾Ý,storeÄ£¿éÖжÔÓ¦actionsÖеĺ¯Êý½Óµ½ÏûϢ֪ͨ,´¥·¢ÍøÂçÇëÇó¡£
/**
* vuex ¶©Æø¶©µ¥×´Ì¬Ä£¿é
* @module order.js
*/
import gas_order_api from '@/api/gas_order_api'
export default{
state: {
// ËùÓÐÉÌÆ·µÄÁбí
product_list: []
},
getters: {
productList: state => {
return state.product_list
}
},
mutations: {
mutaBuildProductList(state, payload){
state.product_list = [];
payload.forEach((item,index)=>{
item['amount'] = 0;
state.product_list.push(item);
});
},
mutaRestProductList(state){
state.product_list = [];
}
},
actions: {
actBuildProductList ({commit},data) {
return new Promise ((resolve, reject) =>
{
gas_order_api.getGasProductList (data['address_id']).then(res=>{
if (res.data && res.data.result ===
'ok'){
// ¸üÐÂÌìÈ»Æø¹æ¸ñ²ÎÊýÁбí
commit('mutaBuildProductList', res.data.data);
}
else {
commit('mutaRestProductList');
}
resolve(res);
}).catch(error => {
reject(error);
})
})
}
}
} |
font-awesome
--> ¹Ù·½ÍøÕ¾
Font Awesome ×ÖÌåΪÄúÌṩ¿ÉËõ·ÅʸÁ¿Í¼±ê,Ëü¿ÉÒÔ±»¶¨ÖÆ´óС¡¢ÑÕÉ«¡¢ÒõÓ°ÒÔ¼°ÈκοÉÒÔÓÃCSSµÄÑùʽ¡£
°²×°
cnpm install
font-awesome --save |
ÒýÓÃ
// µ¼Èëfont-awesome
import 'font-awesome/css/font-awesome.css'
new Vue({
el: '#app',
template: '<App/>',
components: { App }
}) |
°¸Àý
<i class="fa
fa-camera-retro fa-lg"></i> fa-lg
<i class="fa fa-camera-retro fa-2x"></i>
fa-2x
<i class="fa fa-camera-retro fa-3x"></i>
fa-3x
<i class="fa fa-camera-retro fa-4x"></i>
fa-4x
<i class="fa fa-camera-retro fa-5x"></i>
fa-5x |
mockjs
--> ¹Ù·½ÍøÕ¾
¼ò½é
ǰºó¶Ë·ÖÀë
²»ÐèÒªÐ޸ļÈÓдúÂ룬¾Í¿ÉÒÔÀ¹½Ø Ajax ÇëÇ󣬷µ»ØÄ£ÄâµÄÏìÓ¦Êý¾Ý¡£
Êý¾ÝÀàÐͷḻ
ͨ¹ýËæ»úÊý¾Ý£¬Ä£Äâ¸÷ÖÖ³¡¾°¡£×ܽáÆðÀ´¾ÍÊÇÔÚºó¶Ë½Ó¿ÚûÓпª·¢Íê³É֮ǰ£¬Ç°¶Ë¿ÉÒÔÓÃÒÑÓеĽӿÚÎĵµ£¬ÔÚÕæÊµµÄÇëÇóÉÏÀ¹½Øajax£¬²¢¸ù¾ÝmockjsµÄmockÊý¾ÝµÄ¹æÔò£¬Ä£ÄâÕæÊµ½Ó¿Ú·µ»ØµÄÊý¾Ý£¬²¢½«Ëæ»úµÄÄ£ÄâÊý¾Ý·µ»Ø²ÎÓëÏàÓ¦µÄÊý¾Ý½»»¥´¦Àí£¬ÕâÑùÕæÕýʵÏÖÁËǰºǫ́µÄ·ÖÀ뿪·¢¡£ÓëÒÔÍùµÄ×Ô¼ºÄ£ÄâµÄ¼ÙÊý¾Ý²»Í¬£¬mockjs¿ÉÒÔ´ø¸øÎÒÃǵÄÊÇ£ºÔÚºǫ́½Ó¿Ú먦·¢Íê³É֮ǰģÄâÊý¾Ý£¬²¢·µ»Ø£¬Íê³Éǰ̨µÄ½»»¥£»ÔÚºǫ́Êý¾ÝÍê³ÉÖ®ºó£¬ÄãËù×öµÄÖ»ÊÇÈ¥µômockjs£ºÍ£Ö¹À¹½ØÕæÊµµÄajax£¬½ö´Ë¶øÒÑ¡£
°²×°
npm install
mockjs --save-dev |
Ó¦ÓÃ
Ê×ÏÈÔÚÈë¿Újs£¨main.js£©ÀïÒýÈëmockjs
È»ºóн¨Ò»¸ömock.js
/ ÒýÈëmockjs
const Mock = require('mockjs');
// »ñÈ¡ mock.Random ¶ÔÏó
const Random = Mock.Random;
// mockÒ»×éÊý¾Ý
const produceNewsData = function() {
let articles = [];
for (let i = 0; i < 100; i++) {
let newArticleObject = {
title: Random.csentence(5, 30), // Random.csentence(
min, max )
thumbnail_pic_s: Random.dataImage('300x250', 'mockµÄͼƬ'),
// Random.dataImage( size, text ) Éú³ÉÒ»¶ÎËæ»úµÄ Base64
ͼƬ±àÂë
author_name: Random.cname(), // Random.cname()
Ëæ»úÉú³ÉÒ»¸ö³£¼ûµÄÖÐÎÄÐÕÃû
date: Random.date() + ' ' + Random.time() // Random.date()ָʾÉú³ÉµÄÈÕÆÚ×Ö·û´®µÄ¸ñʽ,ĬÈÏΪyyyy-MM-dd£»Random.time()
·µ»ØÒ»¸öËæ»úµÄʱ¼ä×Ö·û´®
}
articles.push(newArticleObject)
}
return {
articles: articles
}
}
// Mock.mock( url, post/get , ·µ»ØµÄÊý¾Ý)£»
Mock.mock('/news/index', 'post', produceNewsData);
|
|