日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > vue >内容正文

vue

Vue.js安装使用教程

發(fā)布時(shí)間:2024/4/17 vue 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue.js安装使用教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、說(shuō)明

上大學(xué)前,請(qǐng)的都是前端JavaScript、后端ASP/PHP/JSP、前后端代碼混雜;上大學(xué)時(shí),請(qǐng)的都是前端Jquery、后端SSH、前后端代碼分離通過模板關(guān)聯(lián);大學(xué)出來(lái)后,請(qǐng)的都是前端三大框架、后端Spring Boot、前后端分離。

雖說(shuō)本質(zhì)的東西沒怎么變,但形式上的東西總是得去記,三天兩頭搞套新輪子反正我個(gè)人是挺煩的。

?

二、安裝

2.1 下載到本地并通過<script>標(biāo)簽引入

開發(fā)版本下載地址:https://vuejs.org/js/vue.js

生產(chǎn)版本下載地址:https://vuejs.org/js/vue.min.js

所謂開發(fā)版本就是沒經(jīng)過壓縮的版本、體積比較大,所謂生產(chǎn)版本就是經(jīng)過壓縮的版本;所謂壓縮就能寫在一行的盡量寫在一行。

使用像普通js文件一樣使用<script>標(biāo)簽引入即可:

<!-- 使用開發(fā)版本 --> <script src="vue.js"></script> <!-- 使用生產(chǎn)版本 --> <script src="vue.min.js"></script>

?

2.2 使用CDN

使用CDN的好處是js文件不用下載到本地(但個(gè)人總感覺沒有下載到本地踏實(shí))。以下是官網(wǎng)推薦的CDN國(guó)內(nèi)的我也不清楚哪個(gè)好點(diǎn)。

<!-- 學(xué)習(xí)使用,返回的是最新版本 --> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <!-- 生產(chǎn)使用,可指定版本避免最新版本存在bug影響應(yīng)用--> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>

?

2.3 使用npm安裝

npm用于js庫(kù)的下載,類似于python中的pip。不需要自己去找下載頁(yè)面然后手動(dòng)下載還是比較方便的,我們這里使用這種形式。

nodejs帶有npm安裝npm直接安裝nodejs即可:http://nodejs.cn/download/

npm默認(rèn)倉(cāng)庫(kù)比較慢,可使用以下三種方法進(jìn)行處理:

# 方法一、配置代理。但該方法經(jīng)常會(huì)報(bào)npm ERR! 503 Too many open connections錯(cuò)誤 npm config set proxy http://[username:password]@127.0.0.1:1080 npm config set https-proxy http://[username:password]@127.0.0.1:1080 # 刪除代理 # npm config delete proxy # npm config delete https-proxy# 方法二、修改默認(rèn)倉(cāng)庫(kù)。使用淘寶的https://registry.npm.taobao.org # 所以我們直接把npm倉(cāng)庫(kù)改成https://registry.npm.taobao.org,那也和安裝cnpm等效 npm config set registry https://registry.npm.taobao.org # 查看當(dāng)前所有配置:npm config list # 只查看當(dāng)前倉(cāng)庫(kù):npm config get registry# 方法三、使用cnpm。可能某些時(shí)候我們不想修改倉(cāng)庫(kù),那我們可以安裝cnpm # cnpm是淘寶發(fā)布的npm定制版,定制之處就是在于默認(rèn)他庫(kù)設(shè)置成淘寶的https://registry.npm.taobao.org # 注意下面這條命令是指定從https://registry.npm.taobao.org安裝cnpm,而不是修改npm的默認(rèn)倉(cāng)庫(kù) npm install -g cnpm --registry=https://registry.npm.taobao.org

npm帶-g參數(shù)則把文件下載到npm安裝目錄的node_modules文件夾下,不帶-g參數(shù)則把文件下載到當(dāng)前目錄的node_modules文件夾下。

# 我們只需要下載到當(dāng)前文件夾下,不帶-g npm install vue # get和post需要axios npm install axios

?

三、vue程序編寫

3.1 基本程序

在當(dāng)前目錄下創(chuàng)建test1.html寫入以下內(nèi)容:

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>第一個(gè)vue.js程序</title><script src="vue.min.js"></script></head><body><div id="app"><!-- {{}}是模板語(yǔ)法,其內(nèi)是vue.js的內(nèi)容 --><p> {{ vue_message }} </p><p> <button v-on:click="changeText">點(diǎn)擊改變</button> </p></div><script type = "text/javascript">var js_message = "Hello Vue!"// 注意new Vue()本質(zhì)是在實(shí)例化對(duì)象,其內(nèi)固定為el/data/methods三個(gè)參數(shù)不要寫其他東西// 用一個(gè)app參數(shù)去承接的意義是,如果需要那么可以在js中使用實(shí)例中的變量或方法,如app.changeTest()var app = new Vue({// el元素限定此方法內(nèi)的元素作用的范圍// 這里#app表示只作用于id為app的節(jié)點(diǎn)及其子孫節(jié)點(diǎn) el: '#app',// data 區(qū)域存放變量,所有前面{{}}內(nèi)要用到的變量都要在這里定義// 此處將message變量賦值為js_message,而js_message被我們賦值為“Hello Vue!”,所以預(yù)期初始打開文件時(shí)顯示的是“Hello Vue!” data: {vue_message: js_message},// methos區(qū)域存放函數(shù),所有前面{{}}內(nèi)或者vue語(yǔ)句用到的方法都要在這里定義 methods: {changeText: function (event) {this.vue_message = "Hello Vue Click!"}}})</script></body> </html>

初始訪問頁(yè)面如下:

點(diǎn)擊按鈕后如下,說(shuō)明定義的vue變量和方法都已生效:

?

3.2 get和post請(qǐng)求

上面的程序交互邏輯只是在前端頁(yè)面內(nèi)進(jìn)行處理,下面在此基礎(chǔ)上我們這里實(shí)現(xiàn)一個(gè)從restful服務(wù)端獲取結(jié)果并展示的vue頁(yè)面。

服務(wù)端python實(shí)現(xiàn)可參考鏈接:https://www.cnblogs.com/lsdb/p/9774307.html

服務(wù)端java實(shí)現(xiàn)可參考鏈接:https://www.cnblogs.com/lsdb/p/9783435.html

另外如果和我這里一樣html和api不同域,那么要處理跨域請(qǐng)求問題,不然瀏覽器會(huì)拒絕解析服務(wù)器返響應(yīng)(Django可參考鏈接):

已攔截跨源請(qǐng)求:同源策略禁止讀取位于 http://127.0.0.1:8000/test/ 的遠(yuǎn)程資源。(原因:CORS 頭缺少 'Access-Control-Allow-Origin')。

(本質(zhì)就是給服務(wù)器響應(yīng)加上Access-Control-Allow-Origin頭。又不是禁止訪問服務(wù)器也不是別人服務(wù)器不回你,一定要服務(wù)器加個(gè)頭你才處理響應(yīng)沒想清楚這是什么孤兒道理)

api接口get和post請(qǐng)求返回結(jié)果如下:

修改后頁(yè)面代碼如下,說(shuō)明見注釋:

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>第一個(gè)vue.js程序</title><script src="node_modules\vue\dist\vue.min.js"></script><!-- get/post新加處一。get/post需要使用axios,在某些教程可以看到使用vue-resource,但vue-resource已經(jīng)不更新了--><script src="node_modules\axios\dist\axios.min.js"></script></head><body><div id="app"><div id="sectionMsg" style="margin-top:20px"><!-- {{}}是模板語(yǔ)法,其內(nèi)是vue.js的內(nèi)容 --><p> 當(dāng)前值:{{ vue_count }} </p><button v-on:click="addOne">加一</button></div><!-- get/post新加處二。get請(qǐng)求頁(yè)面,v-for是vue的for循環(huán)語(yǔ)句 --><div id="sectionGet" style="margin-top:20px"><li v-for="record in getResultRecords">{{record.id}}-{{ record.username }}-{{record.password}}</li><input type="button" name="getButton" @click="getQueryRecords()" value="GET查詢"></div><!-- get/post新加處三。post請(qǐng)求頁(yè)面,v-if是vue的條件判斷語(yǔ)句 --><div id="sectionPost" style="margin-top:20px"><input type="text" ref="userID" placeholder="輸入用戶id進(jìn)行查詢"/><div v-if="postResultRecord != ''">{{postResultRecord.username}}-{{postResultRecord.password}}</div><div v-else></div><input type="button" @click="postQueryRecords()" name="postButton" value="POST查詢" /></div></div><script type = "text/javascript">var js_count = 0// 注意new Vue()本質(zhì)是在實(shí)例化對(duì)象,其內(nèi)固定為el/data/methods三個(gè)參數(shù)不要寫其他東西// 用一個(gè)app參數(shù)去承接的意義是,如果需要那么可以在js中使用實(shí)例中的變量或方法,如app.changeTest()var app = new Vue({// el元素限定此方法內(nèi)的元素作用的范圍// 這里#app表示只作用于id為app的節(jié)點(diǎn)及其子孫節(jié)點(diǎn) el: '#app',// data 區(qū)域存放變量,所有前面{{}}內(nèi)要用到的變量都要在這里定義// 此處將message變量賦值為js_message,而js_message被我們賦值為“Hello Vue!”,所以預(yù)期初始打開文件時(shí)顯示的是“Hello Vue!” data: {vue_count: js_count,// get/post新加處四。新加getResultRecords和postResultRecord變量,用于接收get和post返回結(jié)果,初始值賦空 getResultRecords: '',postResultRecord: '',},// methods區(qū)域存放函數(shù),所有前面{{}}內(nèi)或者vue語(yǔ)句用到的方法都要在這里定義 methods: {addOne: function (event) {this.vue_count += 1;},// get/post新加處五。新加一個(gè)get請(qǐng)求,get填請(qǐng)求的地址、then是響應(yīng)后處理、catch是異常捕獲 getQueryRecords: function(event){axios.get('http://127.0.0.1:8000/test/').then(response => (this.getResultRecords = response.data)).catch(error => (this.vue_count = error));},// get/post新加處六。新加一個(gè)post請(qǐng)求,post填請(qǐng)求的地址+參數(shù)、then是響應(yīng)后處理、catch是異常捕獲 postQueryRecords: function(event){axios// 通過ref方式獲取輸入控件的值。當(dāng)然也可以用原生javascript的document.getElementById("userID").value之類的方式獲取 .post('http://127.0.0.1:8000/test/',{userid:this.$refs.userID.value}).then(response => (this.postResultRecord = response.data[0])).catch(error => (this.vue_count = error));},}})</script></body> </html> View Code

初始訪問頁(yè)面如下:

各按鈕分別點(diǎn)擊后頁(yè)面如下,可見get和post請(qǐng)求都已成功:

?

參考:

https://www.jianshu.com/p/24945ee1ec05

https://blog.csdn.net/caideb/article/details/81449156

http://www.runoob.com/vue2/vue-tutorial.html

https://cn.vuejs.org/v2/guide/installation.html

轉(zhuǎn)載于:https://www.cnblogs.com/lsdb/p/10571331.html

總結(jié)

以上是生活随笔為你收集整理的Vue.js安装使用教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。