最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

vue組建與路由使用總結

來源:懂視網 責編:小采 時間:2020-11-27 19:49:37
文檔

vue組建與路由使用總結

vue組建與路由使用總結:這次給大家帶來vue組建與路由使用總結,vue組建與路由使用的注意事項有哪些,下面就是實戰案例,一起來看一下。1、組件三種掛載方式自動掛載var app3 = new Vue({ el: '#app-3', data: { seen: true } })手動掛載// 可以實現延遲按
推薦度:
導讀vue組建與路由使用總結:這次給大家帶來vue組建與路由使用總結,vue組建與路由使用的注意事項有哪些,下面就是實戰案例,一起來看一下。1、組件三種掛載方式自動掛載var app3 = new Vue({ el: '#app-3', data: { seen: true } })手動掛載// 可以實現延遲按

這次給大家帶來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: '<App/>', // 1、可以通過在 #app 內加入<app></app>替代 2、或者 通過 render: h => h(App) 渲染一個視圖,然后提供給el掛載
 components: { // vue2中可以通過 render: h => 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觸發的時機:

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

推薦閱讀:

vue-cli+webpack創建項目報錯

jquery fullpage插件如何操作頭部與尾部

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue組建與路由使用總結

vue組建與路由使用總結:這次給大家帶來vue組建與路由使用總結,vue組建與路由使用的注意事項有哪些,下面就是實戰案例,一起來看一下。1、組件三種掛載方式自動掛載var app3 = new Vue({ el: '#app-3', data: { seen: true } })手動掛載// 可以實現延遲按
推薦度:
標簽: 使用 VUE 與路由
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
国产精品久久久久精品…-国产精品可乐视频最新-亚洲欧美重口味在线-欧美va免费在线观看