国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端vue入門(純代碼)18

這篇具有很好參考價值的文章主要介紹了前端vue入門(純代碼)18。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

不管何時何地,永遠保持熱愛,永遠積極向上?。?!

【20.尚硅谷GitHub搜索案例_vue-resource實現(xiàn)】

1.vue-resource
  • vue-resource 是 vue 中一個用于發(fā)送請求的插件。
  • vue 發(fā)送請求推薦使用 axios ,vue-resource 的更新頻率不高,且 vue 也推薦 axios。
1.1 安裝插件vue-resource
npm i vue-resource

vue插件使用忘了的,點擊此處。

1.2 在main.js中導入插件vue-resource
  • vue-resource 中使用的是默認導出,導入 vue-resource 使用變量vueResource 接收即可。
import vueResource from 'vue-resource'
1.3 在main.js中使用插件vue-resource
//使用插件
Vue.use(vueResource)
  • 沒有使用 vue-resource插件,【 vue 實例對象和組件實例對象含有的部分屬性如下】。

    前端vue入門(純代碼)18

  • 使用 Vue 的 use() 方法使用插件,在所有的 vue 實例對象和組件實例對象中會多一個 $http 屬性

前端vue入門(純代碼)18

  • 在所有的 vue 實例對象和組件實例對象中 $http 屬性展開。

    前端vue入門(純代碼)18

1.4 使用vue-resource發(fā)送請求
  • vue-resource 與 axios 一樣都是 promise 風格的,vue-resource 發(fā)送請求的方法與形式和 axios 一樣。

以發(fā)送 get 請求為例:

  • 用axios發(fā)送請求:
// 發(fā)起請求獲取用戶數(shù)據(jù)
axios.get(`請求地址`).then(
        //請求成功后,應該干什么?
        (response)=>{
          console.log(this);// this指vc
          console.log('請求成功');
          // 請求成功的處理代碼寫在這里,xxx
        },
        //請求失敗后,應該干什么?
        (error)=>{
          console.log('請求失敗', error.message)
          // 請求失敗的處理 
        },
      );
  • 用vue-resource發(fā)送請求:
	  // 發(fā)起請求獲取用戶數(shù)據(jù)
      this.$http.get(`請求地址`).then(
        response => {
          console.log('請求成功')
          // 請求成功的處理
        },
        error => {
          console.log('請求失敗', error)
          // 請求失敗的處理          
        }
      )

2.基于插件vue-resource的GitHub搜索案例實現(xiàn)

  • 頁面效果如下:

前端vue入門(純代碼)18

完整代碼:

  • index.html
<!DOCTYPE html>
<html lang="zh-en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <!-- 引入第三方樣式庫 -->
    <link rel="stylesheet" href="<%= BASE_URL %>css/bootstrap.css">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>
  • main.js文件

    //引入Vue
    import Vue from 'vue'
    //引入App
    import App from './App.vue'
    //引入vue-resource插件
    import vueResource from 'vue-resource';
    //關閉Vue的生產(chǎn)提示
    Vue.config.productionTip = false
    //使用插件
    Vue.use(vueResource)
    
    //創(chuàng)建vm
    new Vue({
    	el:'#app',
    	render: h => h(App),
      // 生命周期鉤子beforeCreate中模板未解析,且this是vm
      beforeCreate() {
        // this:指的是vm
    		Vue.prototype.$bus = this  //安裝全局事件總線$bus
    	}
    })
    
  • App.vue文件

    <template>
    	<div class="container">
    		<Search/>
    		<List/>
    	</div>
    </template>
    
    <script>
    import List from './components/List';
    import Search from './components/Search';
    export default {
    	components: { List, Search},
    	name: 'App',
    };
    </script>
    
  • Search.vue文件

    <template>
    	<section class="jumbotron">
    		<h3 class="jumbotron-heading">Search Github Users</h3>
    		<div>
    			<input type="text" 
          placeholder="enter the name you search" 
          v-model="keyWord"
          />&nbsp;
    			<!-- 綁定一個點擊事件 -->
    			<button @click="searchUsers">Search</button>
    		</div>
    	</section>
    </template>
    
    <script>
    export default {
    	name: 'Search',
      data() {
        return {
          keyWord:'',
        }
      },
    	methods: {
    		searchUsers() {
          console.log(this);
          //請求前更新List的數(shù)據(jù)【類似于初始化】
          this.$bus.$emit('updateListData',{isLoading:true,errorMsg:'',users:[],isFirst:false})
          // 獲取該url:github搜索的數(shù)據(jù)
    			this.$http.get(`https://api.github.com/search/users?q=${this.keyWord}`).then(
            //請求成功后觸發(fā)自定義事件,并傳遞數(shù)據(jù)
            (response)=>{
              console.log(this);// this指vc
              console.log(response.data);
              this.$bus.$emit('updateListData',{isLoading:false,errorMsg:'',users:response.data.items})
            },
            //請求失敗后
            (error)=>{
              console.log('我請求數(shù)據(jù)失敗后,傳遞失敗的信息,并將users數(shù)據(jù)初始化');
              // 請求失敗后 users必須制空,不然頁面還是會顯示上次成功請求的數(shù)據(jù)
              this.$bus.$emit('updateListData',{isLoading:false,errorMsg:error.message,users:[]})
            },
          );
    		},
    	},
    };
    </script>
    
  • List.vue文件文章來源地址http://www.zghlxwxcb.cn/news/detail-513030.html

    <template>
    	<div class="row">
    		<!-- 展示用戶列表 -->
    		<div
    			class="card"
    			v-show="info.users.length"
    			v-for="user in info.users"
    			:key="user.login"
    		>
    			<!-- 必須有冒號:動態(tài)數(shù)據(jù)綁定 -->
    			<a :href="user.html_url" target="_blank">
    				<img :src="user.avatar_url" style="width: 100px" />
    			</a>
    			<p class="card-text">{{ user.login }}</p>
    		</div>
    		<!-- 展示歡迎詞 -->
    		<h2 v-show="info.isFirst">歡迎使用免費的GitHub接口!</h2>
    		<!-- 展示加載中 -->
    		<h2 v-show="info.isLoading">頁面加載中....</h2>
        <!-- 展示錯誤信息 -->
    		<h2 v-show="info.errorMsg">{{ info.errorMsg }}</h2>
    	</div>
    </template>
    
    <script>
    export default {
    	name: 'List',
    	data() {
    		return {
    			info: {
    				isFirst: true,
    				isLoading: false,
    				errorMsg: '',
    				users: [],
    			},
    		};
    	},
    	// 全局數(shù)據(jù)總線:
    	// 接收數(shù)據(jù)的一方:在mounted鉤子中定義自定義事件
    	mounted() {
    		// 綁定事件updateListData,并在回調(diào)函數(shù)中接收來自Search組件的數(shù)據(jù)【對象的形式:dataObj】
    		this.$bus.$on('updateListData', (dataObj) => {
          // 對象合并:相同的屬性以后面的對象為主
    			this.info = {...this.info,...dataObj}
    		});
    	},
    };
    </script>
    
    <style scoped>
    h2 {
    	margin-left: 50px;
    }
    .album {
    	min-height: 50rem; /* Can be removed; just added for demo purposes */
    	padding-top: 3rem;
    	padding-bottom: 3rem;
    	background-color: #f7f7f7;
    }
    
    .card {
    	float: left;
    	width: 33.333%;
    	padding: 0.75rem;
    	margin-bottom: 2rem;
    	border: 1px solid #efefef;
    	text-align: center;
    }
    
    .card > img {
    	margin-bottom: 0.75rem;
    	border-radius: 100px;
    }
    
    .card-text {
    	font-size: 85%;
    }
    </style>
    

到了這里,關于前端vue入門(純代碼)18的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 前端vue入門(純代碼)09

    前端vue入門(純代碼)09

    【 09.vue中組件的自定義事件 】 自定義組件鏈接 在vue中用的click【點擊】、keyup【按鍵】……等事件,這些屬于內(nèi)置事件,也就是js自帶的事件。 問題一:什么是組件自定義事件呢? 【內(nèi)置事件】:是給html元素用的,比如span、div等標簽,不是組件。 【自定義事件】:顧名思義

    2024年02月09日
    瀏覽(18)
  • 前端vue入門(純代碼)35_導航守衛(wèi)

    前端vue入門(純代碼)35_導航守衛(wèi)

    星光不問趕路人,時光不負有心人 【 33.Vue Router--導航守衛(wèi) 】 導航守衛(wèi) 正如其名, vue-router 提供的導航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導航。有多種機會植入路由導航過程中:全局的, 單個路由獨享的, 或者組件級的。 記住 參數(shù)或查詢的改變并不會觸發(fā)進入/離開的

    2024年02月16日
    瀏覽(19)
  • 前端vue入門(純代碼)24_Modules

    前端vue入門(純代碼)24_Modules

    窮不怪父,苦不責妻,方為真男人! 【 23.Vuex中的模塊化和命名空間 】 [可以去官網(wǎng)看看Vuex3文檔](Module | Vuex (vuejs.org)) 由于使用單一狀態(tài)樹,應用的所有狀態(tài)會集中到一個比較大的對象。當應用變得非常復雜時,store 對象就有可能變得相當臃腫。 為了解決以上問題,Vuex 允許

    2024年02月13日
    瀏覽(19)
  • 前端vue入門(純代碼)21_vuex

    前端vue入門(純代碼)21_vuex

    努力不一定成功,但是,不努力一定很輕松?。?! 【 23.Vuex 】 [可以去官網(wǎng)看看Vuex3文檔](Vuex 是什么? | Vuex (vuejs.org)) 問題1:Vuex是什么? 【官方理解1】:Vuex 是一個專為 Vue.js 應用程序開發(fā)的 狀態(tài)【數(shù)據(jù)】管理模式 。它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應

    2024年02月13日
    瀏覽(26)
  • 前端vue入門(純代碼)22_四個map

    前端vue入門(純代碼)22_四個map

    女為悅己者容,男為悅己者窮。!??! 【 23.Vuex中的四個map方法 】 [可以去官網(wǎng)看看Vuex3文檔](Vuex 是什么? | Vuex (vuejs.org)) 1.vuex求和案例—getters版 getters概念:當state中的數(shù)據(jù)需要經(jīng)過加工后再使用時,可以使用getters加工。【是 store 的計算屬性】 【getters理解】:類似是Vue

    2024年02月12日
    瀏覽(19)
  • video-從入門到精通-不管任何項目奇葩需求,這一專欄就夠了

    video-從入門到精通-不管任何項目奇葩需求,這一專欄就夠了

    在日常我們的開發(fā)中,我們會遇到類似這樣的功能,視頻播放了這種情況,但是如果只是簡單的實現(xiàn)的話, ui不滿意,因為,別人有的,就是代表這是能實現(xiàn)的,你必須完成(苦der程序員) 為了解決這種苦惱,這篇專欄就夠用了, 博主加急更新中?。。。。。?! 大佬如有見解

    2024年02月11日
    瀏覽(20)
  • Vue前端使用I18實現(xiàn)中英文切換

    Vue前端使用I18實現(xiàn)中英文切換

    一、配置vue-i18 1. 進入src/locales/index.js 2. 查看 src/utils/tool.js文件 3. 查看 src/locales/lang/zh-cn.js、src/locales/lang/en.js 二、配置頁面 進入需要有翻譯功能的頁面進行配置,如 login.vue 1. HTML內(nèi)容 2. JS內(nèi)容 三、主要步驟 方法一 ① 頁面上添加小地球選擇語言顯示選項 ② 實現(xiàn)添加的小地

    2024年04月25日
    瀏覽(96)
  • 從零實現(xiàn)一套低代碼(保姆級教程)【后端服務】 --- 【18】實現(xiàn)頁面接口對應的前端

    從零實現(xiàn)一套低代碼(保姆級教程)【后端服務】 --- 【18】實現(xiàn)頁面接口對應的前端

    在上一篇中,我們已經(jīng)把和頁面相關的接口完成的差不多了。從創(chuàng)建頁面,更新頁面等等: 有了接口之后,我們就可以構建前端頁面了。那這部分前端內(nèi)容我們應該寫在哪里呢? 有兩種方式: 直接寫在我們的XinBuilder項目里面,然后通過前端路由拆分成兩個路由 在創(chuàng)建一個

    2024年01月22日
    瀏覽(20)
  • Kafka 入門到起飛 - 什么是 HW 和 LEO?何時更新HW和LEO呢?

    Kafka 入門到起飛 - 什么是 HW 和 LEO?何時更新HW和LEO呢?

    上文我們已經(jīng)學到, 一個Topic(主題)會有多個Partition(分區(qū)) 為了保證高可用,每個分區(qū)有多個Replication(副本) 副本分為Leader 和 Follower 兩個角色,Leader副本對外提供讀寫服務,F(xiàn)ollower 從Leader同步數(shù)據(jù) 當Leader副本掛掉,從ISR中選舉一個Follower副本成為新的Leader對外繼續(xù)提

    2024年02月10日
    瀏覽(18)
  • vue做一個一直自增加載且永遠不會超過百分之九十九的數(shù)值 制造正在加載假象

    vue做一個一直自增加載且永遠不會超過百分之九十九的數(shù)值 制造正在加載假象

    我們在src跟目錄下創(chuàng)建一個utils目錄下面創(chuàng)建一個continuousLoading.js 參考代碼如下 這里這個描述甚至你也可以改成外面?zhèn)鬟M來的 我這里就直接設置 500 0.5秒執(zhí)行一次了 然后每次進來判斷 value 如果還小于99就繼續(xù) 加一 然后回調(diào)一下傳進來的函數(shù) 如果到99了 就直接clearInterval關掉

    2024年02月06日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包