Vue.js有什么用-創(chuàng)新互聯(lián)

這篇文章主要介紹Vue.js有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。

首先,咋們要學習一個js框架,那么肯定要引入該框架的基礎(chǔ)庫,這里我創(chuàng)建一個頁面并且引用官網(wǎng)的庫是:

<script src="https://unpkg.com/vue/dist/vue.js"></script>

下面我們來看一段Vue的基礎(chǔ)使用代碼:

var app = new Vue({
 el: "#appVue",
 data: {
 msg: "第一個vue",
 }
 });

分析下代碼,這個Vue需要的參數(shù)傳遞是一個{}對象;里面的el和data是參數(shù)名稱;el對應的是咋們的頁面上某個塊元素的id(比如div,table的id屬性);data對應的是數(shù)據(jù)源;msg是咋們自定義的數(shù)據(jù)源名稱;好了咋們再來看一下對應的html代碼和效果圖:

 <h4>Vue - 學習大雜燴</h4>
 <hr />
 <div class="container" id="appVue">
 <input type="text" v-model="msg" class="form-control" />
 </div>

效果圖:

Vue.js有什么用

很明顯我們初始化的數(shù)據(jù)msg(“第一個vue”)在input中體現(xiàn)出來了,細看一下這個input標簽的屬性多了一個v-model屬性,并且她對應的值是咋們初始化定義的msg,由此可見v-model起到了數(shù)據(jù)綁定作用;好咋們再來吧數(shù)據(jù)值弄復雜點,在data中再增加一個json格式的數(shù)組如:

blogs: [
 { title: "webapi" },
 { title: "wcf" },
 { title: "mvc" }
 ]

然后咋們增加如下的html:

 <ul>
   <li class="text-left " v-for="(blog,index) in blogs">{{index}} - {{blog.title}}</li>
 </ul>

直接刷新頁面,看下效果圖:

Vue.js有什么用

從結(jié)果能夠看出咋們定義的數(shù)據(jù),直接被遍歷展示在了頁面,再來分析下具體的代碼,相比較普通的li元素,此時多了一個v-for屬性,并且對一個的值有一個這樣的語法規(guī)則 (obj,index) in arr ,就類似于for循環(huán)的寫法并且還有一個遍歷編號index,有了循環(huán)那肯定需要把值展示出來,這個時候可以看到li元素子級里面的寫法是 {{index}} - {{blog.title}} ,來分析下寫法規(guī)則:

1. {{}}是輸出文本的格式,其中包含了要輸出的對象

2. 參數(shù)index對應就是v-for里面的index,對應的值是遍歷的序號,從0開始

3. blog.title對應的是v-for里面的blog,和她對應的自定義屬性title

由上面{{}}數(shù)據(jù)綁定寫法,不得不引出我們對她的好奇心,這種寫法其實在很多js數(shù)據(jù)綁定框架中都相同(比如:angularjs),下面我們來做一個相加的小例子來更深刻記住這種寫法,首先在剛才的data屬性中增加兩個屬性x和y:

data: {
 msg: "第一個vue",
 blogs: [
 { title: "webapi" },
 { title: "wcf" },
  { title: "mvc" }
 ],
 x: 444,
 y: 2
 },

然后增加如下html代碼:

<input type="text" v-model="x" /> * <input type="text" v-model="y" /> = {{x *  y}}

屬性頁面執(zhí)行下效果:

Vue.js有什么用

由此能夠看出 {{x * y}} 允許表達式,并且當我文本框中的x或y值修改后,此{{x*y}}會自動重新計算,有點類似于我們自己寫的js計算后重新賦值到顯示框中的概念;下面我們來看vue中怎么定義一個方法,這里用到她的一個屬性methods,我們定義如下的代碼:

var app = new Vue({
 el: "#appVue",
 data: {
 msg: "第一個vue",
 blogs: [
 { title: "webapi" },
 { title: "wcf" },
  { title: "mvc" }
 ],
 x: 444,
 y: 2
 },
 methods: {
 showMsg: function () {17  this.msg = "我是" + this.msg;
 }
 }
}

再來增加如下的html元素,

<button v-on:click="showMsg" class="btn">點擊</button>

好了再來看下運行的效果圖并且多次點擊按鈕:

Vue.js有什么用

得到的效果是,一直在咋們 v-model="msg" 文本框中增加“我是”,這里得到的結(jié)論是按鈕出發(fā)了我們定義在vue中methods中的方法showMsg,再來看下按鈕上的這個屬性 v-on:click 就是用來表示綁定點擊事件的,這里的v-on:click可以縮寫成@click,由于我在vs中的mvc試圖模板不支持這種寫法,所以本篇還是使用v-on這種寫法來綁定事件;我們再來用一用她的過濾器,這里咋們還是在vue中增加如下filters的代碼,定義一個大小寫的過濾器:

filters: {
 toUpper: function (val, isUpper) {
 if (!val) { return ""; }
 return isUpper ? val.toUpperCase() : val.toLowerCase();
 }
 }

為了方便看效果,我們修改上面的v-model="msg"的文本框代碼如下:

<input type="text" v-model="msg" class="form-control" />{{msg|toUpper(true)}}<br />{{msg|toUpper(false)}}

我們在文本框中增加了一個 {{msg|toUpper(true)}} 寫法,細心朋友能發(fā)下后面的toUpper就是我們剛才定義的過濾器的方法,傳遞了一個參數(shù)true,然后看下效果圖:

Vue.js有什么用

通過使用不同參數(shù)的filter的對比,能看出我們過濾器在此實例中的效果,這里注意的是在msg后面直接使用‘|'隔開就可以增加我們定義的過濾器了,如果多個以此類推使用‘|'追加隔開就行了,還有就是我們定義的 toUpper: function (val, isUpper) 方法中有兩個參數(shù),第一個參數(shù)就是綁定的msg本身,第二個參數(shù)才是我們需要手動傳遞的,這個一定要分開;時間不多了,這里就不再講解其他的常用的特性和屬性了,直接來看下面vue使用webapi的數(shù)據(jù)體現(xiàn)的一個例子;

&raquo; WebApi + Vue.js 示例

首先,這里用到了Vue提供的組件概念component,她和js變量一樣有全局和局部(私有)兩種,代碼方面差距不是很大效果也一樣,這里我們用到的是局部方式來定義一個組件,下面先來看整體代碼:

var blogApp = new Vue({
 el: "#divBlogs",
 data: {
 blogs: []
 },
 methods: {
 getBlogs: function () {

 var that = this;
 $.getJSON("http://www.lovexins.com:1001/api/values?task=2", function (result) {
  if (!result) { return; }
  that.blogs = result;
 });
 }
 },
 components: {
 "div-blog": {
 props: ["item"],
 template: '<div class=" bs-callout bs-callout-danger">' +
  ' <h5>' +
  ' <a v-bind:href="item.Url" target="_blank">{{item.Title | toUpperOrLower(false)}}</a>' +
  ' </h5>' +
  ' <p>' +
  ' {{item.Des}}' +
  ' </p>' +
  ' <hr />' +
  ' <h6>' +
  ' 作者:<a v-bind:href="item.BlogUrl" target="_blank">{{item.NickName}}</a> 發(fā)布時間:<code>{{item.CreateTime}}</code> 推薦:<code>{{item.ZanNum}}</code> 閱讀:<code>{{item.ReadNum}}</code> 評論:<code>{{item.CommiteNum}}</code>' +
  ' </h6>' +
  ' </div>',
 filters: {
  toUpperOrLower: function (val, isUpper) {
  if (!val) { return ""; }

  return isUpper ? val.toUpperCase() : val.toLowerCase();
  }
 }
 }
 }
 });

這里定義的格式和上面第一小節(jié)使用到的差不多,只是多了一個components的定義,這個就是組件的關(guān)鍵字,咋們來逐一分析下代碼步驟;

1. blogs: []是我們定義的一個博客信息數(shù)組

2. methods屬性中g(shù)etBlogs方法用到了一段 var that = this; 這樣的代碼,這里的this是上面創(chuàng)建的 var blogApp = new Vue() 對象,她可以直接使用data中定義的博客數(shù)據(jù)數(shù)組blogs,因此有了下面通過jquery的getJSON獲取webapi數(shù)據(jù)后,直接賦值給博客數(shù)組bolgs

3. components組件中自定義了一個名為“div-blog”的組件,參數(shù)名稱是props定義的item;template是對應的模板,里面可以直接使用item來獲取對應的參數(shù)值;

4. 這里也定義了一個filters,同樣是轉(zhuǎn)大小寫的,寫法可以忽略了,主要注意的地方這里局部的定義的主鍵里面使用filters的時候也同樣是 {{item.Title | toUpperOrLower(false)}} 格式

好了通過上面總結(jié)注意點,咋們再來看下怎么在html中使用這個自定義的組件呢,如下整體html代碼:

<div class="row" id="divBlogs">
 <div class="col-md-12">
 <button v-on:click="getBlogs" class="btn btn-default">查 詢</button>
 <div-blog v-for="blog in blogs" v-bind:item="blog"></div-blog>
 <div  id="toTop" onclick="toTop()">
 <img title="返 回"  src="http://121.42.208.152/images/top.png">
 </div>
 </div>
</div>

引用自定義組件的代碼就一句:

 <div-blog v-for="blog in blogs" v-bind:item="blog"></div-blog>

這里的div-blog就是對應上面總結(jié)的第3點說的,自定義主鍵名稱,需要注意的是如果自定義組件名稱格式如divBlog(駝峰格式),那么我們在html中使用格式就必須是div-Blog,通過‘-'分割開來,這個細節(jié)特別要注意不然頁面不會有效果,好了說了這么多來看下運行的效果圖:

Vue.js有什么用

以上是“Vue.js有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站bm7419.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站名稱:Vue.js有什么用-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://bm7419.com/article10/dpocdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、服務(wù)器托管定制開發(fā)、微信小程序電子商務(wù)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)