欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue完整版和runtime版的區(qū)別詳解

 更新時(shí)間:2022年12月21日 14:27:08   作者:dan_n  
這篇文章主要為大家介紹了Vue完整版和runtime版的區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

創(chuàng)建Vue實(shí)例的三種方式

從HTML得到視圖

前提:使用完整版,CDN引入或者修改配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
	// ...
  configureWebpack: {
    resolve: {
      alias: {
        vue$: 'vue/dist/vue.esm.js', // 用 webpack 1 時(shí)需用 'vue/dist/vue.common.js'
      },
    },
  },
})

index.html

<div id="app">
  {{n}} 
</div>

main.js

import Vue from 'vue' // 或者在index.html使用CDN引入
new Vue({
  // 掛載到app元素并以其DOM內(nèi)部的HTML作為模板
  el: '#app',
  data: {
    n: 1,
  },
})
// 或者傳一個(gè)字符串給template
new Vue({
  template: '<div>{{ n }}</div>'
})

用JS構(gòu)建視圖

需要用到render函數(shù),參數(shù)是Vue提供的h函數(shù),也即createElement

import Vue from 'vue'
new Vue({
  el: '#app',
  render(h) { // createElement
    return h('div', [this.n, h('button', { on: { click: this.add } }, '+1')])
  },
  data: {
    n: 0,
  },
  methods: {
    add() {
      this.n += 1
    },
  },
})

使用vue-loader

可以把*.vue文件翻譯成h構(gòu)建方法,但這樣做HTML就只有一個(gè)div#app,SEO不友好

新建一個(gè)單文件組件 Demo.vue

<template>
  <div class="red">
    {{ n }}
    <button @click="add">+1</button>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        n: 0,
      }
    },
    methods: {
      add() {
        this.n += 1
      },
    },
  }
</script>
<style>
  .red {
    color: red;
  }
</style>
import Vue from 'vue'
import Demo from './Demo.vue'
console.log(Demo.render.toString())
new Vue({
  el: '#app',
  render(h) {
    return h(Demo)
  },
})

將render()函數(shù)打印出來(lái),可以看到該函數(shù)將<template>內(nèi)部代碼翻譯成h構(gòu)建方法

完整版和運(yùn)行時(shí)版的區(qū)別

完整版:運(yùn)行時(shí)+編譯器(compiler將模板字符串編譯成JavaScript渲染函數(shù)的代碼)

運(yùn)行時(shí)版:沒(méi)有編譯器,體積小

如果把視圖寫(xiě)在HTML或template選項(xiàng)會(huì)報(bào)錯(cuò)

兩者對(duì)比

特點(diǎn)視圖CDN引入webpack或@vue/cli引入
Vue完整版有編譯器,體積大寫(xiě)在HTML或template選項(xiàng)里vue.js需額外配置
Vue運(yùn)行時(shí)版無(wú)編譯器寫(xiě)在render函數(shù)里,用參數(shù)h創(chuàng)建標(biāo)簽vue.runtime.js默認(rèn)使用

最佳實(shí)踐

使用非完整版,配合 vue-loader 和 vue 文件

思路

  • 保證用戶(hù)體驗(yàn),用戶(hù)下載的JS文件體積更小,但只支持h函數(shù)
  • 保證開(kāi)發(fā)體驗(yàn),開(kāi)發(fā)者可以直接在vue文件里寫(xiě)HTML標(biāo)簽,不寫(xiě)h函數(shù)
  • 臟活讓loader做,vue-loader把vue文件里的HTML轉(zhuǎn)為h函數(shù)

SEO友好

搜索引擎優(yōu)化

搜索引擎就是不停地curl,搜索引擎根據(jù)curl結(jié)果猜測(cè)頁(yè)面內(nèi)容

p.s. 用戶(hù)訪(fǎng)問(wèn)網(wǎng)站看到的界面是JS渲染之后的,右鍵查看源代碼才是curl返回的結(jié)果

如果頁(yè)面都是JS創(chuàng)建div,curl無(wú)法獲取有效信息,因此最好在title, description, keyword, h1, a寫(xiě)入內(nèi)容(前面三個(gè)是meta標(biāo)簽)

總結(jié)一條原則:讓curl能得到頁(yè)面的主要內(nèi)容和相關(guān)內(nèi)容,SEO就能正常的工作

怎么提升SEO排名呢,訪(fǎng)問(wèn)量or氪金

以上就是Vue完整版和runtime版的區(qū)別詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue完整版runtime版區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue組件代碼分塊和懶加載講解

    vue組件代碼分塊和懶加載講解

    這篇文章主要介紹了vue組件代碼分塊和懶加載講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue2.0和mintui-infiniteScroll結(jié)合如何實(shí)現(xiàn)無(wú)線(xiàn)滾動(dòng)加載

    vue2.0和mintui-infiniteScroll結(jié)合如何實(shí)現(xiàn)無(wú)線(xiàn)滾動(dòng)加載

    這篇文章主要介紹了vue2.0和mintui-infiniteScroll結(jié)合如何實(shí)現(xiàn)無(wú)線(xiàn)滾動(dòng)加載,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 在vue中使用vant TreeSelect分類(lèi)選擇組件操作

    在vue中使用vant TreeSelect分類(lèi)選擇組件操作

    這篇文章主要介紹了在vue中使用vant TreeSelect分類(lèi)選擇組件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue通過(guò)echarts實(shí)現(xiàn)數(shù)據(jù)圖表化顯示

    Vue通過(guò)echarts實(shí)現(xiàn)數(shù)據(jù)圖表化顯示

    Echarts,它是一個(gè)與框架無(wú)關(guān)的 JS 圖表庫(kù),但是它基于Js,這樣很多框架都能使用它,例如Vue,估計(jì)IONIC也能用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問(wèn)題和解決辦法

    Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問(wèn)題和解決辦法

    封裝一個(gè)組件時(shí),我使用到了v-for和v-if,它們?cè)谕粯?biāo)簽內(nèi),總是提示v-for循環(huán)出來(lái)的item在實(shí)例中沒(méi)有被定義,查詢(xún)資料后原因是因?yàn)関-for和v-if在同級(jí)使用時(shí),v-if優(yōu)先級(jí)比v-for高,所以本文給大家介紹了Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問(wèn)題和解決辦法
    2024-07-07
  • 基于Vue2.0+ElementUI實(shí)現(xiàn)表格翻頁(yè)功能

    基于Vue2.0+ElementUI實(shí)現(xiàn)表格翻頁(yè)功能

    Element UI 是一套采用 Vue 2.0 作為基礎(chǔ)框架實(shí)現(xiàn)的組件庫(kù),它面向企業(yè)級(jí)的后臺(tái)應(yīng)用,能夠幫助你快速地搭建網(wǎng)站,極大地減少研發(fā)的人力與時(shí)間成本。這篇文章主要介紹了Vue2.0+ElementUI實(shí)現(xiàn)表格翻頁(yè)功能,需要的朋友可以參考下
    2017-10-10
  • Vue中的MVVM模式使用及說(shuō)明

    Vue中的MVVM模式使用及說(shuō)明

    這篇文章主要介紹了Vue中的MVVM模式使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue2.0$nextTick監(jiān)聽(tīng)數(shù)據(jù)渲染完成之后的回調(diào)函數(shù)方法

    vue2.0$nextTick監(jiān)聽(tīng)數(shù)據(jù)渲染完成之后的回調(diào)函數(shù)方法

    今天小編就為大家分享一篇vue2.0$nextTick監(jiān)聽(tīng)數(shù)據(jù)渲染完成之后的回調(diào)函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue組件層級(jí)關(guān)系詳細(xì)分析

    Vue組件層級(jí)關(guān)系詳細(xì)分析

    這篇文章主要介紹了Vue組件的層級(jí)關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue-router重寫(xiě)push方法,解決相同路徑跳轉(zhuǎn)報(bào)錯(cuò)問(wèn)題

    vue-router重寫(xiě)push方法,解決相同路徑跳轉(zhuǎn)報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了vue-router重寫(xiě)push方法,解決相同路徑跳轉(zhuǎn)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08

最新評(píng)論