vue - Vue中的ajax

来源:https://www.cnblogs.com/heymar/archive/2022/05/09/16251560.html
-Advertisement-
Play Games

只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。 明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。 一. 解決開發環境ajax跨域問題 1.配置代理(方法一) 首先我們能發起ajax請求的,xhr原生不推 ...


只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。
明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。

一. 解決開發環境ajax跨域問題

1.配置代理(方法一)

首先我們能發起ajax請求的,xhr原生不推薦、jQuery也不封裝得有但是也不推薦,因為要操作DOM,然後就是axios,它的體積比jQuery而且他是專門處理數據請求的,他還是promise風格的,jq和axios都是基於xhr來封裝的,如果沒有了xhr他們就沒有了,但是這個fetch是跟xhr同級的也是原生的,不基於xhr,而且也是promise風格的,他的問題是相容性差

image-20220509121202018

開啟兩個本地的node伺服器,通過axios來獲取數據,先下載axios並導入,註意一下,axios的使用,調用get、post以及ajax綜合請求等,還有後面then回調會有返回成功或者失敗的函數

image-20220509121911720

image-20220509121939489

果不其然,當我們點擊直接就跨域了,我們解決跨域一般三種方法,

cors是配置在後端node裡面的,但是它的缺點就是,不能隨便使用響應頭,要配置本公司內容能請求的響應頭,不然用它預設的是個人都可以請求我們伺服器的數據了

然後jsonp就不用說了,雖然可以配置在前端,但是只限於get,局限性太大了

最後還剩下一種,以前沒有學過的-代理,它的原理是這樣的,在前端和伺服器之間來一個中間代理伺服器,保持跟前端一樣的協議埠號等,這樣一來前端從代理伺服器請求發起資源都沒問題了,為什麼代理伺服器和伺服器不一樣卻可以互相拿資源?因為同源策略使我們瀏覽器的策略,伺服器之間沒得這種協議,隨便訪問

image-20220509141743702

我們這裡通過vue-cli來開啟代理伺服器,通過配置vue.config.js也就是前面說過的,vue-cli的配置文件,所以需要在vue-cli官網的配置參考找到 devServer.proxy,直接拿過來配置即可,這裡要註意,這個地址是寫的你要請求的api伺服器地址,而且不用寫具體下麵哪個路徑,寫到埠號就夠了,因為它是自動代理伺服器的埠號為我們vue-cli伺服器的埠號

image-20220509142441273

還有最後一步別忘記改了,在我們axios請求那裡將請求的伺服器改為代理伺服器其實也相當於就是自己的vue-cli這個伺服器,以為他們兩個是一樣的,同時你可以理解為代理伺服器現在有了api伺服器的資源,所以真正要請求的路徑在這裡填寫

image-20220509143917223

但是這個方法有兩個問題

  • 一個是我們轉發的伺服器只能設置一個,多個不行

    image-20220509145423034

  • 一個這個代理伺服器,如果本身伺服器身上有會預設去拿自身伺服器上的,什麼叫做自身伺服器上的,在我們public文件夾下麵的都是8080伺服器埠上掛載的文件

    image-20220509145619782

    那麼問題來了,我如果自己也有個student的文件

    image-20220509145659961

    這個時候再去拿就是我們自己伺服器上的這個students的資源了

    image-20220509145747017

2.配置代理(方法二)

同樣是參照官網cli的devServer.proxy第二段代碼,他那裡複製過來是這樣的,後面會增刪一些內容

image-20220509151032134

首先/api相當於給你掛首碼了,但是只是拿來繞開vue-cli的本地伺服器的查找機制,我有首碼就不是找你public下麵的東西了,就算你也有students,也不關我的事,然後target就為我們的伺服器地址,下麵ws表示支持websocket,changeOrigin表示控制請求頭中的host值(其實就是要不要撒謊的意思,為fasle,當我們代理伺服器訪問api伺服器,代理伺服器的埠號就為8080,如果為true,那麼他就會跟著api伺服器的埠號走,假裝告訴你我也是5000,以防有些api伺服器開啟限制,必須同埠號的伺服器才能訪問),後面這兩個配置不寫也預設為true,當然這樣還沒完,還有一個關鍵配置,cli官網沒給我們寫出來,要配置一個pathRewrite的屬性,值為一個對象,裡面內容表示把以什麼首碼開頭的這個欄位轉換為空字元串,為什麼要這麼做,因為我剛纔說的,我們添加這個首碼只是為了繞過前端這一塊,解決那個本地伺服器和api伺服器都有相同的資源,會先去找本地伺服器的情況,如果進入api伺服器還去找這麼一個地址,那他下麵根本沒得我們的heymar首碼,所以就會報錯,需要註意的是這裡的正則並不需要字面量來包裹,直接引號包起就可以了

image-20220509152353067

然後記得將我們的axios的請求添加首碼

image-20220509152419562

這個時候就算我們public下麵有同名的文件,也不會訪問到他了

如果我們有多個伺服器,直接接著配置在下麵即可

image-20220509152812529

二.github用戶搜索案例

搜索關鍵字可以把github的用戶名字及頭像顯示出來

image-20220509153830053

組件化編程先拆組件,搜索為一個組件search,下麵列表展示為一個組價list,我們這裡引入了bootstrap.css,引入這些外部的文件有兩種方式,一種是在我們src下麵創建一個文件夾,assets專門來放這些,通過import引入

image-20220509155159635

可以看到用這種方式引入,頁面編譯報錯了,找不到這些字體文件,因為我就單純引入了一個bootstrap.css也用不到這些字體文件,這裡就要說到import的規則了,import導入是嚴格導入,他會去找你這個文件所有的依賴都要準備完畢才會給你編譯成功,所以這裡我們還有第二個方法,在public下麵創建一個css文件夾,然後通過index.html我們link方式來導入,link就不會給你檢查這麼多了,這裡也要尊重他的一個語法規則,前面要添加上一些參數

image-20220509155535339

依照前面的思想,靜態頁面創建完畢,組件劃分好後,第二步應該開始創建動態數據了,在這個案例,input輸入的值是我們的數據,list每一個展示出來的用戶信息是我們的數據,先把input的值搞好,用v-model綁定數據

image-20220509162007491

當我們點擊就去發送請求,通過關鍵字回來的參數再通過全局事件匯流排將數據發給我們的list

image-20220509174944151

我們只要這三個數據,頭像地址,用戶github網址,用戶名字

image-20220509162751903

收到數據通過v-for渲染到頁面

image-20220509164007036

1.完善案例

我們整個案例list界面其實要分為四個界面才完善,搜索出來的用戶列表只是其中一個,還有剛開始進來的歡迎界面,點擊搜索的loading界面,以及失敗後的錯誤界面,很明顯這裡要用條件渲染,寫上四個界面

image-20220509170203316

主要是他們的條件是什麼?結合前面的案例,一般條件渲染要控制幾個頁面的顯示隱藏,至少都得有一個開關也就是變數,來判斷他該顯示還是隱藏,那麼這裡應該有四個開關,來表示四種不同的界面,首先welcome這個界面簡單,一上來就為true,當我們點擊搜索就將loading改為true,直到獲取到請求,將它改為false,將用戶列表的頁面改為true也可以,但為了保險起見最好改為userInfo的長度,要有長度才是真正的得到數據了,錯誤信息這裡一直都是false,知道進入錯誤的回調才為true

image-20220509171115352

由於我們要一點擊就將wel改為false,將loading改為true,所以需要將數據傳到search這個界面,一旦點擊就會觸發這個自定義時間,會發送過來一個對象數據

image-20220509175245075

list接受這邊,為了能夠直接賦值最好也將剛纔定義的數據都裝到一個對象裡面去,接收到search傳過來的對象就可以直接賦值,這樣的好處不僅是方便,而且傳過來的數據也語義化一點,不然就只能是傳過來true,false等,我這邊讓每一個值等於這些值

image-20220509175435934

一直到我們獲取到數據,又傳過來一個新的對象,重新賦值新的對象

image-20220509175510681

image-20220509175523364

這裡有一個小註意點:因為我們的wel界面是一刷新就有,後面不可能再出現了,所以後面傳過來的數據都不帶wel這個參數的,你又以對象賦的值,所以只會導致一種情況

image-20220509175802082

image-20220509175818321

結構被改了,這裡可以用到,es6的擴展運算符,主要是把這個要用起來,用處還是蠻多的

image-20220509180055603

三.vue 項目中常用的 2 個 Ajax 庫

1.axios

2.vue-resource(瞭解)

是比較老的一個ajax請求庫,除了xhr、jq、axios、fetch後有多出了一個,它是vue的一個 插件庫,所以說要在入口文件導入並註冊

image-20220509180932294

前面也說過,只要插件一註冊,那麼下麵的vm、vc都可以使用了,使用$http即可,使用方法跟axios一模一樣,就連返回值都一樣,也是promise風格

image-20220509181243711

四.slot插槽

可以讓父組件向子組件指定位置插入html結構

1.無插槽

image-20220509182216442

要完成這樣一個界面,是不是得把其中一個拿來作為組件後面的直接復用即可

這裡傳值有一個註意點,因為我們每個組件標簽都是一個組件收到的數據也是不一樣的,所以可以取一樣的名字,到時候遍歷出來各是各的

image-20220509183509574

props接收數據,渲染即可

image-20220509183906863

2.預設插槽

現在更新需求,我們有兩個廣告商美食這邊只放他的圖片,電影這邊只放他的電影

image-20220509184713940

這個時候就要用到插槽了,以前從沒有在組件標簽裡面寫過標簽體吧,插槽就是要在這裡面寫

image-20220509184932068

先不要管其他的,如果在組建標簽裡面寫了標簽體,還需要一個關鍵步驟,因為vue能夠解析你的標簽,但是他不知道放在哪裡,也就是放在list這個組件的哪裡,所以需要我們在組件模板裡面用一個標簽 slot來占位

image-20220509185128476

這就是我們的slot插槽,但是由於組件裡面的內容改動,後面也不能直接傳數據進去了,也要把對應的位置內容提到組件標簽這裡來寫

image-20220509185806192

註意當我們slot部分沒有內容傳進來的時候,slot標簽裡面的內容就是預設值

image-20220509190009540

3.具名插槽

就是具有名字的插槽,我們上面是一個插槽,可能不需要名字,但是如果有多個插槽,要插往不同的地方呢

首先給slot添加name屬性

image-20220509190648475

然後在我們標簽體這邊,誰要往哪個插槽添加信息,就把他的 slot屬性寫為誰

image-20220509190748381

註意

當我想把一大段代碼加入到一個slot插槽,但是我又不能一個一個去寫,就有點耗時間了,可以將他們都包在一個div裡面然後給div洗衣歌slot,但是這樣就影響頁面佈局了,我們也可以寫一個template標簽包在這裡面就不會影響佈局了

image-20220509191914243

如果用到了template,那麼vue2.6很新的的一個更新,template可以這樣來寫slot名字,鍵值對,而且沒有引號

image-20220509191852149

這個寫法只能應用於template標簽

4.作用域插槽

什麼時候要用到這個作用域插槽

數據在組件的自身,但根據數據生成的數據結構需要組建的使用者來決定

就是數據沒有在我們的插槽的使用者這裡,什麼叫做插槽的使用者,就是我們slot不是等著標簽來填充嗎,誰來填充這個插槽誰就是使用者,就比如說上面這個案例,這個template就是插槽的使用者

我把數據轉移到list裡面去,那麼app裡面定義的這些games,這些list標簽也就是插槽的使用者都用不到數據了,數據轉移到list裡面去了,現在的情況就很像作用域發生了變化,list這個作用域裡面可以使用games,但是插槽使用者在app裡面就用不到,這個時候就要用到作用域插槽了

image-20220509194439682

怎麼來用,首先要知道一句話,插槽的動態綁定,是把這個數據送到他的使用者,註意是使用者,並不是平時這樣是送到下級

image-20220509194752571

我們使用者這邊怎麼來接受這個參數呢?必須使用template標簽,並且裡面寫一個屬性scope沒有d,他的值隨便取,就是一個對象,這裡麵包含了slot傳過來的所有數據,如果就傳過來了一個data那就是值.data就可以取到

image-20220509195043429
------------恢復內容開始------------
只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。
明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。

一. 解決開發環境ajax跨域問題

1.配置代理(方法一)

首先我們能發起ajax請求的,xhr原生不推薦、jQuery也不封裝得有但是也不推薦,因為要操作DOM,然後就是axios,它的體積比jQuery而且他是專門處理數據請求的,他還是promise風格的,jq和axios都是基於xhr來封裝的,如果沒有了xhr他們就沒有了,但是這個fetch是跟xhr同級的也是原生的,不基於xhr,而且也是promise風格的,他的問題是相容性差

image-20220509121202018

開啟兩個本地的node伺服器,通過axios來獲取數據,先下載axios並導入,註意一下,axios的使用,調用get、post以及ajax綜合請求等,還有後面then回調會有返回成功或者失敗的函數

image-20220509121911720

image-20220509121939489

果不其然,當我們點擊直接就跨域了,我們解決跨域一般三種方法,

cors是配置在後端node裡面的,但是它的缺點就是,不能隨便使用響應頭,要配置本公司內容能請求的響應頭,不然用它預設的是個人都可以請求我們伺服器的數據了

然後jsonp就不用說了,雖然可以配置在前端,但是只限於get,局限性太大了

最後還剩下一種,以前沒有學過的-代理,它的原理是這樣的,在前端和伺服器之間來一個中間代理伺服器,保持跟前端一樣的協議埠號等,這樣一來前端從代理伺服器請求發起資源都沒問題了,為什麼代理伺服器和伺服器不一樣卻可以互相拿資源?因為同源策略使我們瀏覽器的策略,伺服器之間沒得這種協議,隨便訪問

image-20220509141743702

我們這裡通過vue-cli來開啟代理伺服器,通過配置vue.config.js也就是前面說過的,vue-cli的配置文件,所以需要在vue-cli官網的配置參考找到 devServer.proxy,直接拿過來配置即可,這裡要註意,這個地址是寫的你要請求的api伺服器地址,而且不用寫具體下麵哪個路徑,寫到埠號就夠了,因為它是自動代理伺服器的埠號為我們vue-cli伺服器的埠號

image-20220509142441273

還有最後一步別忘記改了,在我們axios請求那裡將請求的伺服器改為代理伺服器其實也相當於就是自己的vue-cli這個伺服器,以為他們兩個是一樣的,同時你可以理解為代理伺服器現在有了api伺服器的資源,所以真正要請求的路徑在這裡填寫

image-20220509143917223

但是這個方法有兩個問題

  • 一個是我們轉發的伺服器只能設置一個,多個不行

    image-20220509145423034

  • 一個這個代理伺服器,如果本身伺服器身上有會預設去拿自身伺服器上的,什麼叫做自身伺服器上的,在我們public文件夾下麵的都是8080伺服器埠上掛載的文件

    image-20220509145619782

    那麼問題來了,我如果自己也有個student的文件

    image-20220509145659961

    這個時候再去拿就是我們自己伺服器上的這個students的資源了

    image-20220509145747017

2.配置代理(方法二)

同樣是參照官網cli的devServer.proxy第二段代碼,他那裡複製過來是這樣的,後面會增刪一些內容

image-20220509151032134

首先/api相當於給你掛首碼了,但是只是拿來繞開vue-cli的本地伺服器的查找機制,我有首碼就不是找你public下麵的東西了,就算你也有students,也不關我的事,然後target就為我們的伺服器地址,下麵ws表示支持websocket,changeOrigin表示控制請求頭中的host值(其實就是要不要撒謊的意思,為fasle,當我們代理伺服器訪問api伺服器,代理伺服器的埠號就為8080,如果為true,那麼他就會跟著api伺服器的埠號走,假裝告訴你我也是5000,以防有些api伺服器開啟限制,必須同埠號的伺服器才能訪問),後面這兩個配置不寫也預設為true,當然這樣還沒完,還有一個關鍵配置,cli官網沒給我們寫出來,要配置一個pathRewrite的屬性,值為一個對象,裡面內容表示把以什麼首碼開頭的這個欄位轉換為空字元串,為什麼要這麼做,因為我剛纔說的,我們添加這個首碼只是為了繞過前端這一塊,解決那個本地伺服器和api伺服器都有相同的資源,會先去找本地伺服器的情況,如果進入api伺服器還去找這麼一個地址,那他下麵根本沒得我們的heymar首碼,所以就會報錯,需要註意的是這裡的正則並不需要字面量來包裹,直接引號包起就可以了

image-20220509152353067

然後記得將我們的axios的請求添加首碼

image-20220509152419562

這個時候就算我們public下麵有同名的文件,也不會訪問到他了

如果我們有多個伺服器,直接接著配置在下麵即可

image-20220509152812529

二.github用戶搜索案例

搜索關鍵字可以把github的用戶名字及頭像顯示出來

image-20220509153830053

組件化編程先拆組件,搜索為一個組件search,下麵列表展示為一個組價list,我們這裡引入了bootstrap.css,引入這些外部的文件有兩種方式,一種是在我們src下麵創建一個文件夾,assets專門來放這些,通過import引入

image-20220509155159635

可以看到用這種方式引入,頁面編譯報錯了,找不到這些字體文件,因為我就單純引入了一個bootstrap.css也用不到這些字體文件,這裡就要說到import的規則了,import導入是嚴格導入,他會去找你這個文件所有的依賴都要準備完畢才會給你編譯成功,所以這裡我們還有第二個方法,在public下麵創建一個css文件夾,然後通過index.html我們link方式來導入,link就不會給你檢查這麼多了,這裡也要尊重他的一個語法規則,前面要添加上一些參數

image-20220509155535339

依照前面的思想,靜態頁面創建完畢,組件劃分好後,第二步應該開始創建動態數據了,在這個案例,input輸入的值是我們的數據,list每一個展示出來的用戶信息是我們的數據,先把input的值搞好,用v-model綁定數據

image-20220509162007491

當我們點擊就去發送請求,通過關鍵字回來的參數再通過全局事件匯流排將數據發給我們的list

image-20220509174944151

我們只要這三個數據,頭像地址,用戶github網址,用戶名字

image-20220509162751903

收到數據通過v-for渲染到頁面

image-20220509164007036

1.完善案例

我們整個案例list界面其實要分為四個界面才完善,搜索出來的用戶列表只是其中一個,還有剛開始進來的歡迎界面,點擊搜索的loading界面,以及失敗後的錯誤界面,很明顯這裡要用條件渲染,寫上四個界面

image-20220509170203316

主要是他們的條件是什麼?結合前面的案例,一般條件渲染要控制幾個頁面的顯示隱藏,至少都得有一個開關也就是變數,來判斷他該顯示還是隱藏,那麼這裡應該有四個開關,來表示四種不同的界面,首先welcome這個界面簡單,一上來就為true,當我們點擊搜索就將loading改為true,直到獲取到請求,將它改為false,將用戶列表的頁面改為true也可以,但為了保險起見最好改為userInfo的長度,要有長度才是真正的得到數據了,錯誤信息這裡一直都是false,知道進入錯誤的回調才為true

image-20220509171115352

由於我們要一點擊就將wel改為false,將loading改為true,所以需要將數據傳到search這個界面,一旦點擊就會觸發這個自定義時間,會發送過來一個對象數據

image-20220509175245075

list接受這邊,為了能夠直接賦值最好也將剛纔定義的數據都裝到一個對象裡面去,接收到search傳過來的對象就可以直接賦值,這樣的好處不僅是方便,而且傳過來的數據也語義化一點,不然就只能是傳過來true,false等,我這邊讓每一個值等於這些值

image-20220509175435934

一直到我們獲取到數據,又傳過來一個新的對象,重新賦值新的對象

image-20220509175510681

image-20220509175523364

這裡有一個小註意點:因為我們的wel界面是一刷新就有,後面不可能再出現了,所以後面傳過來的數據都不帶wel這個參數的,你又以對象賦的值,所以只會導致一種情況

image-20220509175802082

image-20220509175818321

結構被改了,這裡可以用到,es6的擴展運算符,主要是把這個要用起來,用處還是蠻多的

image-20220509180055603

三.vue 項目中常用的 2 個 Ajax 庫

1.axios

2.vue-resource(瞭解)

是比較老的一個ajax請求庫,除了xhr、jq、axios、fetch後有多出了一個,它是vue的一個 插件庫,所以說要在入口文件導入並註冊

image-20220509180932294

前面也說過,只要插件一註冊,那麼下麵的vm、vc都可以使用了,使用$http即可,使用方法跟axios一模一樣,就連返回值都一樣,也是promise風格

image-20220509181243711

四.slot插槽

可以讓父組件向子組件指定位置插入html結構

1.無插槽

image-20220509182216442

要完成這樣一個界面,是不是得把其中一個拿來作為組件後面的直接復用即可

這裡傳值有一個註意點,因為我們每個組件標簽都是一個組件收到的數據也是不一樣的,所以可以取一樣的名字,到時候遍歷出來各是各的

image-20220509183509574

props接收數據,渲染即可

image-20220509183906863

2.預設插槽

現在更新需求,我們有兩個廣告商美食這邊只放他的圖片,電影這邊只放他的電影

image-20220509184713940

這個時候就要用到插槽了,以前從沒有在組件標簽裡面寫過標簽體吧,插槽就是要在這裡面寫

image-20220509184932068

先不要管其他的,如果在組建標簽裡面寫了標簽體,還需要一個關鍵步驟,因為vue能夠解析你的標簽,但是他不知道放在哪裡,也就是放在list這個組件的哪裡,所以需要我們在組件模板裡面用一個標簽 slot來占位

image-20220509185128476

這就是我們的slot插槽,但是由於組件裡面的內容改動,後面也不能直接傳數據進去了,也要把對應的位置內容提到組件標簽這裡來寫

image-20220509185806192

註意當我們slot部分沒有內容傳進來的時候,slot標簽裡面的內容就是預設值

image-20220509190009540

3.具名插槽

就是具有名字的插槽,我們上面是一個插槽,可能不需要名字,但是如果有多個插槽,要插往不同的地方呢

首先給slot添加name屬性

image-20220509190648475

然後在我們標簽體這邊,誰要往哪個插槽添加信息,就把他的 slot屬性寫為誰

image-20220509190748381

註意

當我想把一大段代碼加入到一個slot插槽,但是我又不能一個一個去寫,就有點耗時間了,可以將他們都包在一個div裡面然後給div洗衣歌slot,但是這樣就影響頁面佈局了,我們也可以寫一個template標簽包在這裡面就不會影響佈局了

image-20220509191914243

如果用到了template,那麼vue2.6很新的的一個更新,template可以這樣來寫slot名字,鍵值對,而且沒有引號

image-20220509191852149

這個寫法只能應用於template標簽

4.作用域插槽

什麼時候要用到這個作用域插槽

數據在組件的自身,但根據數據生成的數據結構需要組建的使用者來決定

就是數據沒有在我們的插槽的使用者這裡,什麼叫做插槽的使用者,就是我們slot不是等著標簽來填充嗎,誰來填充這個插槽誰就是使用者,就比如說上面這個案例,這個template就是插槽的使用者

我把數據轉移到list裡面去,那麼app裡面定義的這些games,這些list標簽也就是插槽的使用者都用不到數據了,數據轉移到list裡面去了,現在的情況就很像作用域發生了變化,list這個作用域裡面可以使用games,但是插槽使用者在app裡面就用不到,這個時候就要用到作用域插槽了

image-20220509194439682

怎麼來用,首先要知道一句話,插槽的動態綁定,是把這個數據送到他的使用者,註意是使用者,並不是平時這樣是送到下級

image-20220509194752571

我們使用者這邊怎麼來接受這個參數呢?必須使用template標簽,並且裡面寫一個屬性scope沒有d,他的值隨便取,就是一個對象,這裡麵包含了slot傳過來的所有數據,如果就傳過來了一個data那就是值.data就可以取到

image-20220509195043429

------------恢復內容結束------------


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 推薦文章: eclipse導入JDBC MySQL詳細安裝 菜鳥java MySQL連接教程 步驟: 找到MySQL的連接Java的jar文件; 如下圖: 在eclipse項目文件下找到lib文件夾,沒有的話就自己創建一個,然後將上面找到的jar文件複製粘貼到lib文件夾的下麵; 如下圖: 給這個j ...
  • 業務上雲的大背景對彈性與可靠性的要求越來越高,傳統架構的單機資料庫或是分片資料庫已經很難支撐快速增長的業務,如何解決這些痛點呢?一起來聽聽百度雲原生資料庫資深技術專家邱學達怎麼說。 ...
  • SQL語言基礎 SQL (Structured Query Language:結構化查詢語言) 是用於管理關係資料庫管理系統(RDBMS)。 SQL 的範圍包括數據插入、查詢、更新和刪除,資料庫模式創建和修改,以及數據訪問控制。 本文主要記錄一些主要的SQL命令(比如 SELECT、UPDATE、D ...
  • 一、使用PIVOT實現行轉列 1、首先創建一個學生表 CREATE TABLE [dbo].[Students]( [stu_id] [int] IDENTITY(1,1) NOT NULL, [stu_name] [varchar](100) NULL, [stu_hobby] [varchar] ...
  • 在進行視頻通話過程中,用戶有時候會出現網路不好的情況,比如在進行多人視頻通話或者多人唱歌時,我們需要實時顯示用戶的網路質量。 ...
  • 本次上新,共計新增94個開源組件。組件涉及工具、網路、UI、圖形、音視頻等多種功能。 ...
  • 5月11日晚19:00,Hello HarmonyOS進階系列應用篇第二課《電腦視覺》直播如約而至。 ...
  • 隨著新技術的不斷演進,人工智慧已經廣泛地應用到教育、金融、物流、零售、交通、醫療等各個領域。而在AI高速發展的當下,高效開發變得更為重要,如何將創意想法與AI技術深度融合,迅速轉化為可落地的AI應用,是開發者在激烈競爭中制勝的關鍵。 為了助力開發者快速上線AI業務,為消費者提供創新AI體驗,HMS ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...