搜尋
首頁web前端js教程vue.js漸進式框架使用詳解

vue.js漸進式框架使用詳解

Apr 17, 2018 pm 02:51 PM
javascriptvue.js特性

這次帶給大家vue.js漸進式框架使用詳解,vue.js漸進式框架使用詳解的注意事項有哪些,以下就是實戰案例,一起來看一下。

Vue.js是一套建構使用者介面(user interface)的漸進式框架。與其他重量級框架不同的是,Vue 從根本上採用最小成本、漸進增量(incrementally adoptable)的設計。 Vue 的核心庫只專注於視圖層,並且很容易與其他第三方程式庫或現有專案整合。另一方面,當與單一檔案元件和 Vue 生態系統支援的程式庫結合使用時,Vue 也完全能夠為複雜的單頁應用程式提供有力驅動。

Vue.js目前已經更新到2.x,功能和語法上有一定升級和修改,本文首先介紹基礎內容。

1、新手指南

  vue的使用非常簡單,下載vue.js或vue.min.js直接匯入即可使用。

  2、vue初步入門

2.1宣告式渲染

  Vue.js 的核心是,可以採用簡潔的模板語法來聲明式的將資料渲染為 DOM:

<p>
 {{ message }}
</p>
var app = new Vue({
 el: '#app',
 data: {
 message: 'Hello Vue!'
 }
})

  這樣就會輸入:Hello Vue!

  我們已經產生了第一個 Vue 應用程式!這看起來和渲染一個字串模板非常類似,但是 Vue 在背後做了大量工作。現在數據和 DOM 已經被關聯在一起,所有的資料和 DOM 都是響應式的。我們如何對這一切清晰領會?只需打開你的瀏覽器的 JavaScript 控制台(現在,就在目前頁面開啟),然後設定 app.message 的值,你將看到上面的範例所渲染的 DOM 元素會相應地更新。

  除了文字插值(text interpolation),我們也可以採用這樣的方式來綁定 DOM 元素屬性:

<p>
 <span>
 鼠标悬停此处几秒,
 可以看到此处动态绑定的 title!
 </span>
</p>
var app2 = new Vue({
 el: '#app-2',
 data: {
 message: '页面加载于 ' + new Date().toLocaleString()  }
})

  滑鼠懸停幾秒後,就可以看到動態的提示。

  這裡我們遇到一些新內容。你看到的 v-bind 屬性稱為指令。指令帶有前綴 v-,表示是由 Vue 提供的專用屬性。可能你已經猜到了,它們會在渲染的 DOM 上產生專門的響應式行為。簡而言之,這裡該指令的作用就是:「將此元素的title 屬性與 Vue 實例的 message 屬性保持關聯更新」。

  如果你再次開啟瀏覽器的 JavaScript 控制台,並輸入 app2.message = '一些新的 message',就會再次看到,綁定了title 屬性的 HTML 已經進行了更新。

2.1條件與循環

 控制切換一個元素的顯示也相當簡單:

<p>
 </p><p>现在你可以看到我</p>

var app3 = new Vue({
 el: '#app-3',
 data: {
 seen: true
 }
})

  繼續在控制台輸入 app3.seen = false,你應該會看到 span 消失。

  這個範例表明,我們不只是可以將資料綁定到文字和屬性,也可以將資料綁定到 DOM 結構。而且,Vue 也提供一個強大的過渡效果系統,可以在 Vue 插入/更新/刪除元素時,自動使用過渡效果。

  還有其它一些指令,每個都具有各自不同的特殊功能。例如,v-for 指令,可以使用陣列中的資料來展示一個項目清單:

<p>
 </p><ol>
 <li>
  {{ todo.text }}
 </li>
 </ol>

var app4 = new Vue({
 el: '#app-4',
 data: {
 todos: [
  { text: '学习 JavaScript' },
  { text: '学习 Vue' },
  { text: '创建激动人心的代码' }
 ]
 }
})

3 、vue實例

#   每個 Vue 應用程式都是透過 Vue 函數建立一個新的 Vue 實例開始的:

var vm = new Vue({
 // 选项
})

  儘管沒有完全遵循 MVVM 模式,但是 Vue 的設計仍然受到了它的啟發。作為約定,通常我們使用變數 vm (ViewModel 的簡稱) 來表示 Vue 實例。

3.1data 和 methods

  在建立 Vue 實例時,會將所有在 data 物件中找到的屬性,都會加入 Vue 的響應式系統中。每當這些屬性的值發生變化時,視圖都會“及時回應”,並更新相應的新值。

// data 对象
var data = { a: 1 }
// 此对象将会添加到 Vue 实例上
var vm = new Vue({
 data: data
})
// 这里引用了同一个对象!
vm.a === data.a // => true
// 设置实例上的属性,
// 也会影响原始数据
vm.a = 2
data.a // => 2
// ... 反之亦然
data.a = 3
vm.a // => 3

  每當 data 物件發生變化,都會觸發視圖重新渲染。值得注意的是,如果實例已經被創建,那麼只有那些 data 中的原本就已經存在的屬性,才是響應式的。也就是說,如果在實例建立之後,新增一個新的屬性,例如:

vm.b = 'hi'

  然后,修改 b 不会触发任何视图更新。如果你已经提前知道,之后将会用到一个开始是空的或不存在的属性,你就需要预先设置一些初始值。例如:

data: {
 newTodoText: '',
 visitCount: 0,
 hideCompletedTodos: false,
 todos: [],
 error: null
}

  除了 data 属性, Vue 实例还暴露了一些有用的实例属性和方法。这些属性与方法都具有前缀 $,以便与用户定义(user-defined)的属性有所区分。例如:

var data = { a: 1 }
var vm = new Vue({
 el: '#example',
 data: data
})
vm.$data === data // => true
vm.$el === document.getElementById('example') // => true
// $watch 是一个实例方法
vm.$watch('a', function (newValue, oldValue) {
 // 此回调函数将在 `vm.a` 改变后调用
})

3.2vue实例的声明周期

  vue实例的声明周期是一个很重要的概念,理解之后可以通过它实现很多功能。

  看下这段代码。

nbsp;html>

 
  <meta>
  <title></title>
 
 
  <p>我的声明周期,大家看吧!</p>
 
 <script></script>
 <script></script>
 <script>
  //以下代码时显示vm整个生命周期的流程
  var vm = new Vue({
   el: "#container",
   data: {
    test : &#39;hello world&#39;
   },
   beforeCreate: function(){
    console.log(this);
    showData(&#39;创建vue实例前&#39;,this);
   },
   created: function(){
    showData(&#39;创建vue实例后&#39;,this);
   },
   beforeMount:function(){
    showData(&#39;挂载到dom前&#39;,this);
   },
   mounted: function(){
    showData(&#39;挂载到dom后&#39;,this);
   },
   beforeUpdate:function(){
    showData(&#39;数据变化更新前&#39;,this);
   },
   updated:function(){
    showData(&#39;数据变化更新后&#39;,this);
   },
   beforeDestroy:function(){
    vm.test ="3333";
    showData(&#39;vue实例销毁前&#39;,this);
   },
   destroyed:function(){
    showData(&#39;vue实例销毁后&#39;,this);
   }
  });
  function realDom(){
   console.log(&#39;真实dom结构:&#39; + document.getElementById(&#39;container&#39;).innerHTML);
  }
  function showData(process,obj){
   console.log(process);
   console.log(&#39;data 数据:&#39; + obj.test)
   console.log(&#39;挂载的对象:&#39;)
   console.log(obj.$el)
   realDom();
   console.log(&#39;------------------&#39;)
   console.log(&#39;------------------&#39;)
  }
 </script>

  通过控制台的打印效果可以看出来,实例化 vue 对象大致分为 创建vue实例、挂载到dom、数据变化更新、vue实例销毁 4个阶段,,注意每个阶段都有对应的钩子,我们可以通过对这些钩子进行操作,达成一些功能。虽然初学者用不太上,但是提前了解一下还是好的,到时候碰到实际功能要能想得到生命周期的钩子。         

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

推荐阅读:

ajax与jsonp的使用详解

Vue 2.0内部指令

前端开发中的多列布局实现方法

以上是vue.js漸進式框架使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

在Quartz中如何在任務開始前發送通知?在Quartz中如何在任務開始前發送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

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尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能