Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
VueÓ¦Óÿò¼ÜÕûºÏÓëʵս--¿ò¼ÜÕûºÏ(ͨÓÃ)ƪ
 
  1767  次浏览      27
 2019-5-5  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ô×÷Õß¼òÊ飬ÎÄÕÂÖ÷Òªvuex£¬vue-router£¬Axios£¬font-awesome£¬mockjsµÈ¼¸·½Ãæ´Ó°²×°£¬Ó¦Ó㬰¸ÀýµÈ·½Ãæ½éÉÜÁËÈ«ÎÄ¡£

vuex-->

¹Ù·½ÍøÕ¾

Vuex ÊÇÒ»¸öרΪ Vue.js Ó¦ÓóÌÐò¿ª·¢µÄ״̬¹ÜÀíģʽ¡£Ëü²ÉÓü¯ÖÐʽ´æ´¢¹ÜÀíÓ¦ÓõÄËùÓÐ×é¼þµÄ״̬£¬²¢ÒÔÏàÓ¦µÄ¹æÔò±£Ö¤×´Ì¬ÒÔÒ»ÖÖ¿ÉÔ¤²âµÄ·½Ê½·¢Éú±ä»¯¡£

°²×°

cnpm install vuex --save

ÒýÓÃ

ÔÚÒ»¸öÄ£¿é»¯µÄ´ò°üϵͳÖУ¬Äú±ØÐëÏÔʽµØÍ¨¹ý 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

require('./mock.js')

 

È»ºóн¨Ò»¸ö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);

 

 

   
1767 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì