搜尋
首頁web前端js教程vue內建指令方法與事件

這次帶給大家vue內建指令方法與事件,使用vue內建指令方法與事件的注意事項有哪些,以下就是實戰案例,一起來看一下。

指令 (Directives) 是帶有 v- 前綴的特殊屬性, 職責是,當表達式的值改變時,將其產生的連帶影響,響應式地作用於 DOM。

內建指令

1、v-bind:回應並更新DOM特性;例如:v-bind:href  v-bind:class v-bind:title  等等

主要用法是綁定屬性,動態更新HTML元素上的屬性;

<a>...</a>
<!-- 缩写 -->
<a>...</a>
<p>标题</p>
var app = new Vue({
  el: '#app',
  data: { 
    url: 'www.baidu.com',
    title: 'bind'
  },
})

2、v-on:用於監聽DOM事件;例如:v -on:click  v-on:keyup

順帶講一下方法與事件

2.1 @click 的表達式可以直接使用JavaScript 語句,也可以是Vue 實例中methods 選項內的函數名,可以在方法中傳遞參數

<!-- 完整语法 -->
<a>...</a>
<!-- 缩写 -->
<a>...</a>    //是一个方法名
<p>一段文本</p>
<button>点击隐藏文本</button>  //直接是一个内联的语句
<button>Add 1</button>
var app = new Vue({
  el: '#app',
  data:{
    show: true,
    counter: 0
  },
  methods: {
    doSomething: function(){
      console.log(this.title);
    },
  }
})

2.2方法與事件:

Vue 提供了一個特殊變數$event ,用於存取原生DOM 事件,可以阻止事件冒泡或阻止連結開啟

寫一個阻止冒泡的範例:

  <p>
      </p><p>
        </p><p>阻止冒泡</p>
      
    
  
methods:{
    stopClick3: function(message, event){
      console.log(message);
      event.stopPropagation();  //阻止冒泡
    },
    stopClick2: function(message, event){
      console.log(message);
    },
    stopClick1: function(message, event){
      console.log(message);
    }
}

2.3修飾符:

在@綁定的事件後面加小圓點“.”,再跟一個後綴來使用修飾符。

上面的阻止冒泡事件,可以直接使用者修飾符的方式寫為:

<p>阻止冒泡</p>  //不用通过$event事件再来写了

常用的一些修飾符有:

• .stop

• .prevent

• .capture

• .self

• .once

< !一阻止单击事件冒泡一〉
<a></a>
〈!一修饰符可以串联一〉
<a></a>
〈!一添加事件侦听器时使用事件捕获模式一〉
<p> ... </p>
〈!一只当事件在该元素本身(而不是子元素) 触发时触发回调一〉
<p> ... </p>
< !一只触发一次,组件同样适用一〉
<p> ... </p>

在表單元素上監昕鍵盤事件時,還可以使用按鍵修飾符,例如按下特定某個鍵時才呼叫方法:

< !一只有在keyCode 是13 时调用vm.submit()一〉
<input><p style="text-align: left;">3、v-model:資料雙向綁定;用於表單輸入等;例如:</p><p style="text-align: left;">4、v-show:條件渲染指令,為DOM設定css的style屬性</p><p style="text-align: left;">#5、v-if:條件渲染指令,動態在DOM內添加或刪除DOM元素</p><p style="text-align: left;">6、v-else:條件渲染指令,必須跟v-if成對使用</p><p style="text-align: left;">7、v-else-if:判斷多層條件,必須跟v -if成對使用;</p><p style="text-align: left;">8、v-text:更新元素的textContent;例如:<span v-text="msg"></span> 等於{{ msg}}  span>;</p><p style="text-align: left;">9、v-html:更新元素的innerHTML;會把標籤名稱也帶上。 </p><p style="text-align: left;">10、v-for:循環指令;例如:</p><pre class="brush:php;toolbar:false"><p>
    </p>
          
  • { { book.name } }
  •     
   var app =new Vue({   el: '#app',   data: {     books: [       {name: ''},       {name: ''},       {name: ''}     ]   } });

10.1 v- for 的表達式遍歷數組時支援一個可選參數作為當前項目的索引, 例如:

  <p>
    </p>
          
  • {{ index}} - {{book.name })
  •     
  

10.2 v- for 的表達式遍歷物件屬性時,有兩個可選參數,分別是鍵名和索引:

  <p>
    </p>
          
  •         { { index } } - { { key } } : { { value } }       
  •     
   var app = new Vue({   el: '#app',   data: {     name: 'Aresn',     grender: '男',     age:23   } });

10.3 v- for 的表達式還可以迭代整數:

 <p>
    <span>{{n}}</span>
  </p>

10.4 陣列更新

當我們修改陣列時, Vue 會偵測到資料變化,所以用v-for 渲染的視圖也會立即更新。

• push()
• pop()
• shift()
• unshit()
• splice()
• sort()
• reverse ()

這些方法會改變被這些方法呼叫的原始陣列

例如,我們將先前範例的資料books 新增一項:

app.books.push({
  name: '《css世界》'
});

有些方法不會改變原始數組,例如:

• filter()
• concat()
• slice()

它們傳回的是一個新數組,在使用這些非變異方法時,可以用新數組來替換原始數組,如:

app.books = app.books.filter(function (item) {
  return item . name.match(/JavaScript/);
});

Vue 在檢測到數組變化時,並不是直接重新渲染整個列表,而是最大化地復用DOM 元素。

取代的陣列中,含有相同元素的項目不會被重新渲染,因此可以大膽地用新陣列來取代舊數組,不用擔心效能問題。

10.5 過濾與排序

當你不想改變原始數組,想透過一個數組的副本來做過濾或排序的顯示時, 可以使用計算屬性來返回過濾或排序後的數組,例如: 

  <p>
    </p>
               
   var app= new Vue({   el: '#app',   computed: {     filterBooks: function(){       return this.books.filter(function (book) {         return book.name.match(/JavaScript/);       })     },   } });

11、v-cloak:不需要表达式,这个指令保持在元素上直到关联实例结束编译; v-cloak 是一个解决初始化慢导致页面闪动的最佳实践 ;

12、v-once:也是一个不需要表达式的指令,作用是定义它的元素或组件只渲染一次,包括元素或组件的所有子节点。

首次渲染后,不再随数据的变化重新渲染,将被视为静态内容; v-once 在业务中也很少使用,当你需要进一步优化性能时,可能会用到。

13、v-pre:不需要表达式,跳过这个元素以及子元素的编译过程,以此来加快整个项目的编译速度;例如: {{ this will not be compiled }} span>

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue项目内应用第三方验证码

在项目中如何使用Vue filter

以上是vue內建指令方法與事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安裝JavaScript?如何安裝JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具