首頁  >  文章  >  web前端  >  vue.js1.0版入門解說

vue.js1.0版入門解說

巴扎黑
巴扎黑原創
2017-07-22 17:52:171379瀏覽

vue

  vue.js 是用來建立互動式的 Web 介面的函式庫。它提供了 MVVM 資料綁定和一個可組合的元件系統,具有簡單、靈活的 API。從技術上講, Vue.js 集中在 MVVM 模式上的視圖模型層,並透過雙向資料綁定連接視圖和模型。實際的 DOM 操作和輸出格式被抽象化成指令和過濾器。相較於其它的 MVVM 框架,Vue.js 更容易上手。

Vue.js 是一個用於建立 Web 互動介面的函式庫。它讓你透過簡單而靈活的 API 創建由資料驅動的 UI 元件。

 <br>

Vue1.0常用語法

<span style="font-size: 18px"><code class="hljs oxygene"><span class="hljs-keyword">var vm = <span class="hljs-keyword">new Vue(<span class="hljs-comment">{

  el: "选择器",  挂载到页面的那个元素里,即确定vue的作用范围  外部可通过vm.$el访问,得到的是一个原生dom元素,可进行对应操作

  a: '',  //自定义属性  外部可通过vm.$options访问

  data: { }, <span class="hljs-comment">//实例属性都在这里面,外部通过实例名,即vm.$data调用

  computed: <span class="hljs-comment">{ }, <span class="hljs-comment">//计算属性,也是实例属性,只是以方法的形式存在,并可以有逻辑运算的属性

  <span class="hljs-function"><span class="hljs-keyword">method: <span class="hljs-comment">{ }, <span class="hljs-comment">//实例方法都在这里

  watch: <span class="hljs-comment">{ }, <span class="hljs-comment">//对data和computed的属性进行监听,当属性有变化时自动触发,以方法的形式存在 外部通过$.watch调用

  <span class="hljs-comment">//注意:以上属性和方法,实例内部都通过this调用,外部则通过对应的实例方法访问

  <span class="hljs-comment">//在vue的生命周期过程中,它自身还提供了一系列的钩子函数供我们使用,进行自定义逻辑的注入:   

  created: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 实例已经创建 }

  <span class="hljs-title">beforeCompile: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 模块编译之前 }

  <span class="hljs-title">compiled: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 模块编译之后;即模板占位符被是内容替换}

  <span class="hljs-title">ready: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 模板插入到文档中了;相当于window.onload }//<span class="hljs-title">Vue2.0已改为<span class="hljs-title">mounted

  注意: 以上4个方法在对象被实例化后即按顺序执行,以下2个方法需通过事件触发,并通过调用 实例名.$<span class="hljs-title">destory<span class="hljs-params">() 才执行

  <span class="hljs-title">beforeDestroy: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 对象销毁之前 }

  <span class="hljs-title">destroyed: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">()<span class="hljs-comment">{ 对象销毁之后 }

});<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></span>

Vue物件解析:

1,對象屬性

  data、el、options、watch、computed

 

2,物件方法

  生命週期之鉤子函數

 

3,物件實例存取與呼叫屬性與方法

  A:實例屬性呼叫:$options、$el、$data、$watch

  這裡著重說下$watch,它的一般語法為:

vm.$watch("监听的实例属性名",function() { // 对于监听数据变化后的业务处理代码 });     --浅度监听

如果監聽的屬性是基本資料型,上面用法是沒有問題的,但如果監聽的屬性是對象,則物件內部的資料有變化,上面寫法是監聽不到的,需要進行一個參數進行深度監聽,具體語法如下:

vm.$watch("监听的实例属性名",function() { // 对于监听数据变化后的业务处理代码 },{deep: true});  --深度监听

B:實例方法呼叫:$mount()、$log()、$destroy()

4,自帶過濾器&自訂過濾器

#  A:vue自帶的過濾器有:

##    capitalize(首字母大寫)、uppercase、currency、json( 相當於JSON.Stringify() )、debounce(後跟秒數,配合事件,延遲執行)

limitBy(參數1, 參數2) 常用語v-for數組,限制輸出數量和從哪輸出;參數1代表輸出幾個,參數2代表從第幾個輸出

filterBy(參數) 過濾數據,過濾含有參數的數據,配合input輸入框,透過輸入變數過濾,打到熱搜尋的效果

    orderBy(參數) 對資料排序,參數為1時為正序,為-1時則倒序,其他什麼參數呢?所以1和-1基本上是常用情況

  B:自訂過濾器語法(對於時間戳的處理是比較常用的自訂過濾器)

<span style="font-size: 18px"><code class="hljs actionscript">Vue.filter(<span class="hljs-string">"过滤器名称",<span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(参数<span class="hljs-rest_arg">...){

    ...  //业务处理

    return <span class="hljs-rest_arg">...;

  });<br></span></span></span></span></span></span></code></span>
5,自帶指令和自訂指令

  指令是對HTML語法的擴展,必須以v-開頭,一般我們口中的指令實際上是指屬性指令,使用該屬性指令的元素講具有對應的屬性功能,下面的C則是指元素指令,與屬性指令有所區別

  A:自帶指令:v- if、v-show、v-else、v-module、v-text、v-html、v-bind、v-on、v-el、v-cloak...

  這裡著重說下v-text和v-cloak:在模板中我們調用實例屬性資料時通常這樣{{ 實例屬性}},這樣在網速比較慢的情況下,頁面出現閃爍的時候會把花括號和裡面的原始內容顯示出來,這樣使用者體驗不好,處理這種情況有2種方式:

#    1, 在較大段落元素上使用v-clock指令,並設定該元素的css: display:none

    2, 使用v-text/v-html代替花括號即可,Vue2.0也支援這樣做,且花括號方式可能被取消

  B:自訂指令語法:

 Vue.directive("指令名称",function(..){
    this.el.style.background = 'red';   //这里的this代表new出来的实例,this.el代表原生的dom元素
  });

範本中使用v-指令名稱進行使用,或v-指令名稱="參數",可以在呼叫指令是進行傳參

  定義指令名稱時不加v-,模板使用時加v-

## ##  C: 自訂元素指令(據說用處不大,可忽略跳過,它所想要達到的效果,元件已超越)######
 Vue.elementDirective("自定义元素名称",{
    bind: function() {};
  });
######它不支援B情況語法,但B情況語法預設也是bind######### ##########6,自訂鍵盤資訊######
Vue.directive('on'),keyCodes.ctrl = 17;  //17是ctrl的键码  等号前的ctrl是定义ctrl的别名,可以随便取,实际绑定的就是键盘上的ctrl键
######範本呼叫@keydown .ctrl ="自訂方法"#######

以上是vue.js1.0版入門解說的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn