亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談vue在html中出現(xiàn){{}}的原因及解決方式

 更新時間:2020年11月16日 09:22:46   作者:Cassie、  
這篇文章主要介紹了淺談vue在html中出現(xiàn){{}}的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

原因:

瀏覽器渲染機制,解析html結(jié)構(gòu) -> 加載外部腳本和樣式表文件 -> 解析并執(zhí)行腳本代碼 -> 構(gòu)造html dom模型 -> 加載圖片等外部文件 -> 頁面加載完畢。

初始化vue的js寫在頁面底部,也就是最后才執(zhí)行js腳本。

所以頁面從頭到尾開始渲染時,渲染到標簽時,由于vue還未初始化,所以就會顯示類似這樣的代碼

<h2>{{courseName}}</h2>

當網(wǎng)速很慢的時候就看得比較清楚,可能會讓用戶誤以為bug之類的,快一點的話就是一閃而過,體驗不是很好

解決辦法:

1、網(wǎng)上說的很多都是用v-cloak,

<div id="app" v-cloak>
  {{context}}
</div>
[v-cloak]{
  display: none;
}

但是我用了下無效,可能哪里使用的不對?然后就干脆按自己的思路實現(xiàn)了

2、我現(xiàn)在實現(xiàn)解決的方式,給最外層div加個class='hide'(.hide{display: none},注意這個樣式要寫在head里),然后在vue初始化完成后,移除這個類hide,大概代碼如下

<!DOCTYPE html>
<html lang="en">
 
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport"
  content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
 <title>標題</title>
 <style>
  .hide{
   display: none;
  }
 </style>
</head>
<body>
 <div id="app" class="hide">
  <h2>{{courseName}}</h2>
 </div>
 <script>
  //初始化vue
  initVue()
 
  function initVue() {
   new Vue({
    el: '#app',
    data: function () {
     return {
      datas:{
       courseName:''
      }
     }
    },
    mounted() {
     //移除隱藏樣式
     document.querySelector('#app').classList.remove('hide')
    }
   })
  }
 </script>
</body>  

補充知識:原生js和vue之間的數(shù)據(jù)通訊--EventEmitter

有個小項目在原來原生的框架編寫,但是不想寫原生,就引入了vue

然后有個需求要和原生的js進行交互通訊,于是就可以用node.js EventEmitter

具體做法:

先引入文件<script src="../../js/eventEmitter.js"></script>,

初始化,

然后在vue里面發(fā)送emit,

在外面監(jiān)聽on

var event = new EventEmitter();
$(document).ready(function () {
  //監(jiān)聽some_event事件
  event.on('some_event', function (data) {
    
  });
})
 
let vm = new Vue({
  el: "#app",
  methods: {
    getList() {
      // 觸發(fā)事件
      event.emit('some_event','params');
    },
  }
}); 

附上eventEmitter.js

class EventEmitter {
 constructor() {
  this.event = {};
  this.maxListerners = 10;
 }
 // 監(jiān)聽
 on(type, listener) {
  if (this.event[type]) {
   if (this.event[type].length >= this.maxListerners) {
    console.error('同一個監(jiān)聽器最多被十個對象監(jiān)聽,否則可能造成內(nèi)存泄漏.\n');
    return;
   }
      if (!this.event[type].includes(listener)) {
        this.event[type].push(listener);
      }
  } else {
   this.event[type] = [listener];
  }
 }
 //發(fā)送監(jiān)聽
 emit(type, ...rest) {
  if (this.event[type]) {
   this.event[type].map(fn => fn.apply(this, rest));
  }
 }
 //移除監(jiān)聽器
 removeListener(type,func) {
  if (this.event[type]) {
      this.event[type] = this.event[type].filter(item => item !== func);
      if (this.event[type].length === 0) {
        delete this.event[type];
      }
  }
 }
 //移除所有的監(jiān)聽器
 removeAllListener() {
  this.event = {};
 }
}

以上這篇淺談vue在html中出現(xiàn){{}}的原因及解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js引入外部CSS樣式和外部JS文件的方法

    vue.js引入外部CSS樣式和外部JS文件的方法

    這篇文章主要介紹了vue.js引入外部CSS樣式和外部JS文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Vue3使用transition組件改變DOM屬性的方式小結(jié)

    Vue3使用transition組件改變DOM屬性的方式小結(jié)

    這篇文章主要為大家詳細介紹了Vue3中使用transition組件改變DOM屬性的常用方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Vue項目打包編譯優(yōu)化方案

    Vue項目打包編譯優(yōu)化方案

    當一個較復(fù)雜的vue項目打包后,文件會非常大,而且訪問時資源加載速度很慢,本文介紹了幾種措施來優(yōu)化。
    2020-09-09
  • 詳解Vuejs2.0 如何利用proxyTable實現(xiàn)跨域請求

    詳解Vuejs2.0 如何利用proxyTable實現(xiàn)跨域請求

    本篇文章主要介紹了Vuejs2.0 如何利用proxyTable實現(xiàn)跨域請求,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Vue+thinkphp5.1+axios實現(xiàn)文件上傳

    Vue+thinkphp5.1+axios實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了Vue+thinkphp5.1+axios實現(xiàn)文件上傳,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • vant-ui框架的一個bug(解決切換后onload不觸發(fā))

    vant-ui框架的一個bug(解決切換后onload不觸發(fā))

    這篇文章主要介紹了vant-ui框架的一個bug(解決切換后onload不觸發(fā)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 快速掌握Vue Router使用方法

    快速掌握Vue Router使用方法

    Vue Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,讓構(gòu)建單頁面應(yīng)用變得易如反掌。路由實際上就是可以理解為指向,就是我在頁面上點擊一個按鈕需要跳轉(zhuǎn)到對應(yīng)的頁面,這就是路由跳轉(zhuǎn)
    2023-01-01
  • vue 解決文本框被鍵盤遮住的問題

    vue 解決文本框被鍵盤遮住的問題

    今天小編就為大家分享一篇vue 解決文本框被鍵盤遮住的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 深入淺析Vue.js計算屬性和偵聽器

    深入淺析Vue.js計算屬性和偵聽器

    這篇文章主要介紹了Vue.js計算屬性和偵聽器的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • Vue3全局配置axios的兩種方式總結(jié)

    Vue3全局配置axios的兩種方式總結(jié)

    在實際項目開發(fā)中,幾乎每個組件中都會用到?axios?發(fā)起數(shù)據(jù)請求,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Vue3全局配置axios的兩種方式,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論