首頁 web前端 js教程 vue組成與路由使用總結

vue組成與路由使用總結

May 10, 2018 am 10:45 AM
使用 總結 路由

這次帶給大家vue組成與路由使用總結,vue組成與路由使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

1、元件三種掛載方式

#自動掛載

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

手動掛載

// 可以实现延迟按需挂载
<p id="app"> {{name}} </p> 
<button onclick="test()">挂载</button> 
<script> 
 var obj= {name: '张三'} 
 var vm = new Vue({ 
 data: obj
 }) 
 function test() { 
 vm.$mount("#app"); 
 }
登入後複製
// Vue.extend()创建没有挂载的的子类,可以使用该子累创建多个实例
var app= Vue.extend({ 
 template: '<p>{{message}}</p>', 
 data: function () { 
 return { 
  message: 'message'
  } 
 } 
 }) 
 new app().$mount('#app') // 创建 app实例,并挂载到一个元素上
登入後複製

2 、路由傳遞參數的方式

<p>
  <!-- query要用path来引入,params要用name来引入,故不能写为 :to="{path:'/login',params: {isLogin: true}} -->
  <!-- 跳转路由时用this.$router: this.$router.push({name:"login",params:{isLogin:true}});this.$router.push({path: '/login', query: {isLogin : true}}); -->
  <!-- 接收参数时用this.$route: this.$route.query.isLogin 和 this.$route.params.isLogin; -->
  <router-link :to="{name:'login',params: {isLogin: true}}">亲,请登录</router-link>
  <router-link :to="{name:'login',params: {isLogin: false}}">免费注册</router-link>
 </p>
 <!-- 路由出口, 路由匹配到的组件将渲染在这里 -->
 <router-view></router-view>
登入後複製

3、對render:h => h(App)的理解

render:h=>h (App)是ES6中的箭頭函數寫法,等價於render:function(h){return h(App);}.

1.箭頭函數中的this是指向包裹this所在函數外面的對像上。

2.h是creatElement的別名,vue生態系統的通用管理

3.template:'<app/>',components:{App}配合使用與單獨使用render :h=>h(App)會達到同樣的效果

前者識別<template>標籤,後者直接解析template下的id為app的p(忽略template的存在)

new Vue({
 el: '#app', // 相当于 new Vue({}).$mount('#app');
 template: '&lt;App/&gt;', // 1、可以通过在 #app 内加入&lt;app&gt;&lt;/app&gt;替代 2、或者 通过 render: h =&gt; h(App) 渲染一个视图,然后提供给el挂载
 components: { // vue2中可以通过 render: h =&gt; h(App) 渲染一个视图,然后提供给el挂载
  App
 }
});
登入後複製

4、Vue.nextTick()的理解

與DOM相關運算寫在該函數回呼中,確保DOM已渲染

nextTick的由來:

由於VUE的資料驅動視圖更新,是異步的,即修改資料的當下,視圖不會立刻更新,而是等同一事件循環中的所有資料變更完成之後,再統一進行視圖更新。

nextTick的觸發時機:

在同一事件迴圈中的資料變更後,DOM完成更新,立即執行nextTick(callback)內的回呼。

應用程式場景:

需要在視圖更新之後,基於新的視圖進行操作。

在Vue生命週期的created()鉤子函數進行的DOM操作一定要放在Vue.nextTick()的回呼函數中。原因是什麼呢,原因是在created()鉤子函數執行的時候DOM 其實並未進行任何渲染,而此時進行DOM操作無異於徒勞,所以此處一定要將DOM操作的js程式碼放進Vue.在 nextTick()的回呼函數中。與之對應的就是mounted鉤子函數,因為該鉤子函數執行時所有的DOM掛載和渲染都已完成,此時在該鉤子函數中進行任何DOM操作都不會有問題 。

在資料變化後要執行的某個操作,而這個操作需要使用隨資料改變而改變的DOM結構的時候,這個操作都應該放進Vue.nextTick()的回呼函數中。

簡單總結事件循環:

同步程式碼執行-> 尋找非同步佇列,推入執行棧,執行callback1[事件循環1 ] ->尋找非同步佇列,推入執行棧,執行callback2[事件循環2]...即每個非同步callback,最終都會形成自己獨立的一個事件循環。結合nextTick的由來,可以推出每個事件循環中,nextTick觸發的時機:

我相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

vue-cli webpack建立專案報錯

jquery fullpage外掛程式如何操作頭部與尾部

以上是vue組成與路由使用總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用磁力鏈接 如何使用磁力鏈接 Feb 18, 2024 am 10:02 AM

如何使用磁力鏈接

如何使用mdf和mds文件 如何使用mdf和mds文件 Feb 19, 2024 pm 05:36 PM

如何使用mdf和mds文件

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? Mar 18, 2024 pm 02:58 PM

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用?

foob​​ar2000怎麼下載? -foobar2000怎麼使用 foob​​ar2000怎麼下載? -foobar2000怎麼使用 Mar 18, 2024 am 10:58 AM

foob​​ar2000怎麼下載? -foobar2000怎麼使用

網易信箱大師怎麼用 網易信箱大師怎麼用 Mar 27, 2024 pm 05:32 PM

網易信箱大師怎麼用

小愛音箱怎麼用 小愛音箱怎麼連接手機 小愛音箱怎麼用 小愛音箱怎麼連接手機 Feb 22, 2024 pm 05:19 PM

小愛音箱怎麼用 小愛音箱怎麼連接手機

百度網盤app怎麼用 百度網盤app怎麼用 Mar 27, 2024 pm 06:46 PM

百度網盤app怎麼用

教你使用 iOS 17.4「失竊裝置保護」新進階功能 教你使用 iOS 17.4「失竊裝置保護」新進階功能 Mar 10, 2024 pm 04:34 PM

教你使用 iOS 17.4「失竊裝置保護」新進階功能

See all articles