日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

瀏覽:23日期:2022-09-29 18:19:21
概述

在前面隨筆《循序漸進(jìn)VUE+Element 前端應(yīng)用開發(fā)之動(dòng)態(tài)菜單和路由的關(guān)聯(lián)處理》中介紹了在Vue + Element整合框架中,實(shí)現(xiàn)了動(dòng)態(tài)菜單和動(dòng)態(tài)路由的處理,從而可以根據(jù)用戶角色對(duì)應(yīng)的菜單實(shí)現(xiàn)本地路由的過濾和綁定,菜單順利弄好了,就需要進(jìn)一步開發(fā)頁面功能了,本篇隨筆介紹一個(gè)案例,通過獲取后端數(shù)據(jù)后,進(jìn)行產(chǎn)品信息頁面的處理。

1、后端數(shù)據(jù)的獲取處理

前后端的邊界則非常清晰,前端可以在通過網(wǎng)絡(luò)獲取對(duì)應(yīng)的JSON就可以構(gòu)建前端的應(yīng)用了。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

我們通過Vue.config.js的配置信息,可以指定Proxy來處理是本地Mock數(shù)據(jù)還是實(shí)際的后端數(shù)據(jù),如下所示。

我們要跨域請(qǐng)求數(shù)據(jù),在配置文件里設(shè)置代理,vue-cli3項(xiàng)目,需要在vue.config.js里面寫配置。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

我們創(chuàng)建了一些操作數(shù)據(jù)的API類文件,每個(gè)API名稱對(duì)應(yīng)一個(gè)業(yè)務(wù)的集中處理,包括特定業(yè)務(wù)的列表請(qǐng)求、單個(gè)請(qǐng)求、增加、刪除、修改等等都可以封裝在一個(gè)API類里面。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

然后在對(duì)應(yīng)的業(yè)務(wù)API訪問類,如product.js 里面定義我們的請(qǐng)求邏輯,主要就是利用簡單封裝axios的request輔助類來實(shí)現(xiàn)數(shù)據(jù)的請(qǐng)求。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

下一步就是在src/views/product目錄里面定義我們的視圖文件,這個(gè)也就是頁面文件,其中包含了常規(guī)VUE的幾個(gè)部分,包括

<template> </template><script>export default {}</script><style></style>

其中在<template>里面的是界面元素部分,可以添加我們相關(guān)的界面組件等內(nèi)容,如element的界面組件在里面。

其中<script>是vue腳本交互的部分了,這里面封裝我們很多處理邏輯和對(duì)應(yīng)的modal對(duì)象信息,在調(diào)用API類進(jìn)行訪問數(shù)據(jù)前,我們往往需要引入對(duì)應(yīng)的API類文件,如下所示。

import { GetTopBanners, GetProductList } from ’@/api/product’

其中<style>則定義相關(guān)的樣式。

在開始介紹Vue 的Script部分,我們認(rèn)為你已經(jīng)對(duì)VUE的script相關(guān)內(nèi)容,以及它的生命周期有所了解了,script部分的內(nèi)容包括有。

<script>export default { data() { return {}; }, methods: { // 組件的方法 }, watch: { // watch擅長處理的場(chǎng)景:一個(gè)數(shù)據(jù)影響多個(gè)數(shù)據(jù) }, computed: { // computed擅長處理的場(chǎng)景:一個(gè)數(shù)據(jù)受多個(gè)數(shù)據(jù)影響 }, beforeCreate: function() { // 在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)(data observer) 和 event/watcher 事件配置之前被調(diào)用。 }, created: function() { // 實(shí)例已經(jīng)創(chuàng)建完成之后被調(diào)用。在這一步,實(shí)例已完成以下的配置:數(shù)據(jù)觀測(cè)(data observer),屬性和方法的運(yùn)算, watch/event 事件回調(diào)。然而,掛載階段還沒開始,$el 屬性目前不可見。 }, beforeMount: function() { // 在掛載開始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用。 }, mounted: function() { // 編譯好的HTML掛載到頁面完成后執(zhí)行的事件鉤子 // el 被新創(chuàng)建的 vm.$el 替換,并掛載到實(shí)例上去之后調(diào)用該鉤子。 // 此鉤子函數(shù)中一般會(huì)做一些ajax請(qǐng)求獲取數(shù)據(jù)進(jìn)行數(shù)據(jù)初始化 console.log('Home done'); }, beforeUpdate: function() { // 數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 重新渲染和打補(bǔ)丁之前。 你可以在這個(gè)鉤子中進(jìn)一步地更改狀態(tài),這不會(huì)觸發(fā)附加的重渲染過程。 }, updated: function() { // 由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子。 // 當(dāng)這個(gè)鉤子被調(diào)用時(shí),組件 DOM 已經(jīng)更新,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下,你應(yīng)該避免在此期間更改狀態(tài),因?yàn)檫@可能會(huì)導(dǎo)致更新無限循環(huán)。 // 該鉤子在服務(wù)器端渲染期間不被調(diào)用。 }, beforeDestroy: function() { // 實(shí)例銷毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。 }, destroyed: function() { // Vue 實(shí)例銷毀后調(diào)用。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定,所有的事件監(jiān)聽器會(huì)被移除,所有的子實(shí)例也會(huì)被銷毀。 該鉤子在服務(wù)器端渲染期間不被調(diào)用。 }};</script>

其中我們主要涉及到內(nèi)容包括:

data,用于定義整個(gè)頁面的modal對(duì)象或?qū)傩裕?/p>

method,用于定義各種處理方法

computed,用于定義一些計(jì)算的樹形

created,用于我們?cè)谠貏?chuàng)建,但是沒有掛載的時(shí)候

mounted,完成頁面掛載的時(shí)候

2、界面展示處理

例如我們要展示一個(gè)界面內(nèi)容,需要展示產(chǎn)品的圖片,以及產(chǎn)品信息介紹

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

那么需要定義相關(guān)的數(shù)據(jù)模板,以及對(duì)應(yīng)的處理方法,在頁面加載前實(shí)現(xiàn)數(shù)據(jù)的綁定處理。

export default { data() { return { activeName: ’all’, currentDate: new Date(), banners: [], productlist: [], pageinfo: {pageindex: 1,pagesize: 10,total: 0 }, producttype: ’all’ }; }, created() { this.loadbanners() this.getlist() },

界面部分,我們利用Element的界面組件定義一個(gè)走馬燈的展示效果,如下所示。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

在Template模塊里面定義好的界面元素如下所示。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

這里面的el-carousel 是Element組件的走馬燈,而v-for='iteminbanners' 就是vue的處理語法,對(duì)data模型里面的數(shù)據(jù)進(jìn)行循環(huán)處理,然后逐一展示多個(gè)圖片,從而實(shí)現(xiàn)了走馬燈的效果展示。

對(duì)于列表展示,我們采用了一個(gè)卡片的展示內(nèi)容,以及分頁處理的方式實(shí)現(xiàn)數(shù)據(jù)的展示。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

分類按鈕部分,代碼如下所示。

<el-row :gutter='20' style='padding:20px'> <el-button type='primary' icon='el-icon-search' :plain='producttype !=’all’' @click='handleClick($event, ’all’)'>全部</el-button> <el-button type='success' icon='el-icon-search' :plain='producttype !=’1’' @click='handleClick($event, ’1’)'>框架產(chǎn)品</el-button> <el-button type='warning' icon='el-icon-search' :plain='producttype !=’2’' @click='handleClick($event, ’2’)'>軟件產(chǎn)品</el-button> <el-button type='danger' icon='el-icon-search' :plain='producttype !=’3’' @click='handleClick($event, ’3’)'>開發(fā)組件</el-button></el-row>

主要就是根據(jù)data屬性進(jìn)行一些樣式的控制,以及響應(yīng)對(duì)應(yīng)的click事件。

而每個(gè)卡片內(nèi)容介紹,Demo代碼如下所示。

<el-col :span='4'><div /><el-card class='box-card'> <img src='https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png' class='image'> <div style='padding: 14px;'> <span>好吃的漢堡</span> <div class='bottom clearfix'> <time class='time'>價(jià)格:¥200</time> <el-button type='text' @click='loadbanners()'>操作按鈕</el-button> </div> </div></el-card></el-col>

但是我們要根據(jù)實(shí)際獲得的動(dòng)態(tài)數(shù)據(jù)進(jìn)行綁定,因此需要一個(gè)循環(huán)來進(jìn)行處理,類似上面的v-for循環(huán),對(duì)產(chǎn)品列表進(jìn)行展示即可。

<el-col v-for='(item, index) in productlist' :key='index' :span='4' style='min-width:250px'><div class='grid-content bg-purple'> <el-card class='box-card'> <img :src='http://m.b3g6.com/bcjs/item.Picture' style='width:200px;height:200px'> <div style='padding: 14px;'> <span>{{ item.ProductName }}</span> <div class='bottom clearfix'><!-- <time class='time'>價(jià)格:¥{{ item.Price }}</time> --><el-button type='text' class='button'>操作按鈕</el-button> </div> </div> </el-card></div></el-col>

為了有效的請(qǐng)求和展示數(shù)據(jù),我們還需要利用分頁組件來進(jìn)行數(shù)據(jù)的分頁查詢處理,分頁組件界面的定義代碼如下所示。

<el-pagination background layout='prev, pager, next' :page-sizes='[10,20,50]' :total='pageinfo.total' :current-page='pageinfo.pageindex' :page-size='pageinfo.pagesize' @size-change='handleSizeChange' @current-change='handleCurrentChange' />

為了實(shí)現(xiàn)對(duì)數(shù)據(jù)的分頁,我們需要定義當(dāng)前頁碼、每頁面數(shù)據(jù)大小、總共數(shù)據(jù)記錄數(shù)等幾個(gè)變量,用來進(jìn)行分頁查詢的需要。

Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

我們定義的getList的方法如下所示。

getlist() { // 構(gòu)造分頁查詢條件 var param = {type: this.producttype === ’all’ ? ’’ : this.producttype,pageindex: this.pageinfo.pageindex,pagesize: this.pageinfo.pagesize }; this.listLoading = true // 發(fā)起數(shù)據(jù)查詢請(qǐng)求,并設(shè)置本地Data的值 GetProductList(param).then(data => {this.productlist = data.listthis.pageinfo.total = data.total_countthis.listLoading = false }) },

另外定義幾個(gè)方法,對(duì)數(shù)據(jù)進(jìn)行查詢的操作。

// 單擊某類別的時(shí)候,進(jìn)行查詢 handleClick(e, type) { // console.log(e, type); this.producttype = type this.pageinfo.pageindex = 1; this.getlist() }, // 頁面數(shù)量改變后查詢處理 handleSizeChange(val) { console.log(`每頁 ${val} 條`); this.pageinfo.pagesize = val; this.getlist() }, // 頁碼改變后查詢處理 handleCurrentChange(val) { console.log(`當(dāng)前頁: ${val}`); this.pageinfo.pageindex = val; this.getlist() }

以上就是我們利用Element的界面組件,以及Vue的方法進(jìn)行數(shù)據(jù)的分頁查詢請(qǐng)求的基礎(chǔ)操作,通過這個(gè)簡單的案例,我們可以了解一些基礎(chǔ)的Element 界面組件的使用,以及對(duì)Data / Method等內(nèi)容的了解,并指導(dǎo)如何封裝調(diào)用跨域的API請(qǐng)求,實(shí)現(xiàn)后端數(shù)據(jù)在界面上的展示處理了。

以上就是Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Vue Element獲取后端數(shù)據(jù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩中文字幕不卡| 97久久中文字幕| 久久影院午夜精品| 桃色一区二区| 99热精品久久| 香蕉久久国产| 免费不卡在线观看| 日本亚洲欧美天堂免费| 欧美日韩一区自拍| 久久久久伊人| 99久久激情| 性欧美69xoxoxoxo| 亚洲精品影视| 精品伊人久久久| 在线视频观看日韩| 婷婷综合福利| 久久97久久97精品免视看秋霞| 日韩精品2区| 老牛影视一区二区三区| 国产欧美啪啪| 亚洲h色精品| 日本特黄久久久高潮| 一区二区精品伦理...| 99视频精品| 国产精品黄色片| 婷婷精品视频| 日韩精品国产精品| 捆绑调教日本一区二区三区| 美女精品在线观看| 精品中文字幕一区二区三区四区| 欧美日韩三区| 国产精品亚洲一区二区在线观看| 91精品国产乱码久久久久久久| 一区二区精彩视频| 国产传媒在线观看| 水野朝阳av一区二区三区| 欧美激情麻豆| 欧美女激情福利| 国产精品magnet| 亚洲黄页一区| 久久伊人亚洲| 亚洲精品一区二区在线看| 国产精品手机在线播放| 婷婷激情久久| 国产一区二区三区四区| 亚洲三级国产| 欧美日韩尤物久久| 国产精品欧美大片| 国产精品日本| 国内在线观看一区二区三区| 亚洲影视一区二区三区| 日韩国产综合| 卡一卡二国产精品| 日韩一区精品| 最新日韩欧美| 亚洲播播91| 国产伦一区二区三区| 亚洲深夜影院| 亚洲h色精品| 国产在线一区不卡| 欧美日韩夜夜| 模特精品在线| 国产自产自拍视频在线观看| 国产精品亚洲欧美| 色综合视频一区二区三区日韩 | 日韩精品一区二区三区免费观影| 日韩国产91| 国产视频亚洲| 久久婷婷激情| 久久精品亚洲一区二区| 亚洲精品第一| 视频一区二区中文字幕| 不卡在线一区| 亚洲播播91| 日韩国产一区| 中文字幕高清在线播放| 精品久久免费| 久久国产精品美女| 国产一区 二区| 亚洲免费专区| 亚洲一区二区小说| 噜噜噜久久亚洲精品国产品小说| 欧美日韩在线观看视频小说| 日韩久久一区二区三区| 精品国产aⅴ| 欧美精品99| 国产精品久久久亚洲一区| 欧美午夜网站| 国产欧美视频在线| 国产精品综合色区在线观看| 日韩精品第二页| 日本亚洲不卡| 欧美久久亚洲| 国产精品片aa在线观看| 国产精品第一国产精品| 免费在线欧美黄色| 精品欠久久久中文字幕加勒比| 国产精品xxx在线观看| 国产精品igao视频网网址不卡日韩 | 亚洲3区在线| 中文字幕一区二区三区四区久久| 亚洲一区二区三区免费在线观看| 亚洲免费高清| 亚洲青青久久| 91av一区| 免费在线亚洲欧美| 国产精品原创| 亚洲黑丝一区二区| 亚洲欧美久久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲三级观看| 青青草伊人久久| 国产精品chinese| 亚洲一区资源| aa亚洲婷婷| 日韩精品欧美大片| 国产精品115| 色偷偷色偷偷色偷偷在线视频| 亚洲a在线视频| 国产午夜精品一区二区三区欧美| 中文字幕日韩亚洲| 国产精品99久久免费观看| 国产69精品久久| 国产精品久久久久av电视剧| 午夜欧美在线| 日本a级不卡| 久久中文字幕一区二区三区| 日韩一区二区三区免费播放| 在线亚洲激情| 欧美日韩黄网站| 群体交乱之放荡娇妻一区二区| 91久久亚洲| 国产精品国码视频| 欧美1区2区3区| 日韩中文字幕一区二区高清99| 国产精品久久久久久模特| 日韩电影免费网站| 亚洲精品日本| 91亚洲国产| 亚洲香蕉视频| 久久电影tv| 中文一区一区三区免费在线观 | 亚洲婷婷免费| 日本在线成人| 日韩欧美国产精品综合嫩v| 亚洲一区二区三区高清| 国产伦精品一区二区三区在线播放| 岛国av在线网站| 亚洲精品伊人| 蜜桃精品在线| 青草国产精品| 国产综合亚洲精品一区二| 亚洲精品福利| 亚洲不卡av不卡一区二区| 日韩精品久久久久久| 欧美一区三区| 久久精品国产999大香线蕉| 久久久久国产精品一区二区| 日本欧美大码aⅴ在线播放| 日韩欧美一区二区三区免费观看| 日韩精品一区二区三区av| 亚洲成人不卡| 国产精品一在线观看| 最新亚洲一区| 欧美日韩国产观看视频| 日韩高清三区| 影音国产精品| 久久久夜夜夜| 麻豆精品av| 视频在线在亚洲| 欧美99久久| 香蕉成人av| 88久久精品| 视频在线观看国产精品| 99精品电影| 精品三级av| 国产亚洲欧美日韩在线观看一区二区 | 亚洲黑丝一区二区| 日韩av在线播放网址| 欧美日韩夜夜| 国产亚洲高清视频| 在线视频观看日韩| 九色porny丨国产首页在线| 欧美a在线观看| 国产精品一区二区美女视频免费看| 欧美午夜不卡| 欧美日韩视频免费观看| 精品国产亚洲日本| 国产欧美欧美| 欧美日本不卡| 日韩精品91亚洲二区在线观看| 黑丝一区二区| 亚洲成人三区| 在线一区电影| 一本色道精品久久一区二区三区| 日韩av有码| 国产在线一区不卡| 激情综合五月| 精品一区二区三区中文字幕视频| 国产精品综合|