最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

petite vue 基本使用指南示例小結(jié)

 更新時(shí)間:2024年07月02日 09:38:45   作者:Yune_Neko  
petite-vue 是為漸進(jìn)增強(qiáng)而優(yōu)化的另一種 Vue 發(fā)行版,它提供與標(biāo)準(zhǔn) Vue 相同的模板語(yǔ)法和反應(yīng)性心智模型,這篇文章主要介紹了petite vue 基本使用指南,需要的朋友可以參考下

前言

petite-vue 是為漸進(jìn)增強(qiáng)而優(yōu)化的另一種 Vue 發(fā)行版。它提供與標(biāo)準(zhǔn) Vue 相同的模板語(yǔ)法和反應(yīng)性心智模型。

不過(guò),它專門針對(duì)在由服務(wù)器框架呈現(xiàn)的現(xiàn)有 HTML 頁(yè)面上“散布”少量交互進(jìn)行了優(yōu)化。

petite-vue,它在提供 vue 基本功能的同時(shí),還能一個(gè)輕量級(jí),簡(jiǎn)單應(yīng)用的微框架,這樣也能保證開發(fā)者有一個(gè)不錯(cuò)的使用體驗(yàn)。

  • 只有 ~6kb
  • 兼容 Vue 的模板語(yǔ)法
  • 基于 DOM,就地變化
  • 由 @vue/reactivity 驅(qū)動(dòng)
  • 無(wú)需構(gòu)建

引入項(xiàng)目

CDN 引入

<div v-scope="{ count: 0 }">
  {{ count }}
  <button @click="count++">inc</button>
</div>
<script
  src="https://unpkg.com/petite-vue@0.4.1/dist/petite-vue.iife.js"
  defer
  init
></script>

當(dāng)然也可以把該地址內(nèi)部代碼全部賦值到本地 js 文件中使用

  • defer 屬性可使腳本在文檔被解析后執(zhí)行

    如不使用 defer 則需手動(dòng)初始化 PetiteVue.createApp().mount()

  • init 屬性會(huì)告訴 petite-vue 自動(dòng)查詢和初始化頁(yè)面上所有具有 v-scope 的元素

  • v-scope 標(biāo)記頁(yè)面上需要使用 petite-vue 渲染的地方

根作用域

使用 createApp 在頁(yè)面上注冊(cè)一個(gè)根作用域, 內(nèi)容在 html 代碼中可用. 可以理解為在 Vue 中的暴露至 template

<script type="module">
  import { createApp } from "../lib/petite-vue.js";
  createApp({
    // 暴露出的數(shù)據(jù) 直接寫在 createApp 內(nèi)的是響應(yīng)式數(shù)據(jù)
    count: 0,
    // getter
    get plusOne() {
      return this.count + 1;
    },
    // methods
    increment() {
      this.count++;
    },
  }).mount();
</script>
<div v-scope>
  <!-- 經(jīng)典的插值表達(dá)式 -->
  <p>{{ count }}</p>
  <p>{{ plusOne }}</p>
  <!-- v-on也是可用的 -->
  <button @click="increment">increment</button>
</div>

全局狀態(tài)管理

<script type="module">
  import { createApp, reactive } from "../lib/petite-vue.js";
  // 定義單獨(dú)一個(gè)對(duì)象存放數(shù)據(jù) 需要 reactive 來(lái)轉(zhuǎn)為響應(yīng)式數(shù)據(jù)
  const store = reactive({
    count: 1,
  });
  function inc() {
    store.count++;
  }
  // 執(zhí)行一次
  inc();
  createApp({
    store,
    inc,
  }).mount();
</script>
<div v-scope="{ localCount: 0 }">
  <p>Global {{ store.count }}</p>
  <button @click="inc">增加全局?jǐn)?shù)據(jù)</button>
  <p>Local {{ localCount }}</p>
  <button @click="localCount++">增加局部變量</button>
</div>

生命周期

可以監(jiān)聽掛載與卸載事件

<div
  v-if="show"
  @vue:mounted="console.log('mounted on: ', $el)"
  @vue:unmounted="console.log('unmounted: ', $el)"
></div>

組件

使用組件可以復(fù)用邏輯 但 petite-vue 的組件并不那么好用

按照 Vue 的習(xí)慣, 也可以使用一個(gè) js 文件作為一個(gè)組件

// footer.js
// 可以傳遞 props
export default function (props) {
  return {
    // 組件模板
    $template: `<footer>頁(yè)腳組件</footer>`,
    msg: "A message",
    print() {
      console.log(props);
    },
  };
}

如果創(chuàng)建了一個(gè)獨(dú)立的 js 文件作為組件, 則模板只能為字符串形式

在官方的 README 中模板有template元素的用法. 但那種只能寫在 html 文件中, 而寫在 html 文件內(nèi)的組件無(wú)法復(fù)用. 故在此不作展示

<!-- index.html -->
<!-- 使用組件 傳遞參數(shù)200 且在掛載時(shí)觸發(fā)方法 -->
<div v-scope="footer(200)" @vue:mounted="print"></div>
<script type="module" src="src/lib/petite-vue.js" defer int></script>
<script type="module">
  import { createApp } from "../lib/petite-vue.js";
  // 引入組件
  import footer from "../components/footer.js";
  createApp({
    footer, // 注入組件
  }).mount();
</script>

需要注意的是 @vue:mounted="print" 這個(gè)print方法的作用域是組件內(nèi)的print

基本示例

<!-- 在頁(yè)面載入時(shí)執(zhí)行函數(shù) -->
<body v-scope @vue:mounted="loadArticle()">
  <!-- v-show 顯示控制 -->
  <ul v-show="!store.currentHash.includes('#4')">
    <li v-show="store.currentHash.includes('#1-')">
      <a href="javascript:;" rel="external nofollow"  class="nav-header">導(dǎo)航欄</a>
      <dl>
        <!-- v-on 與 class 的綁定 -->
        <dd :class="{'layui-this':store.currentHash === '#1-1'}">
          <a href="#1-1" rel="external nofollow" >1-1</a>
        </dd>
      </dl>
    </li>
  </ul>
  <script type="module" src="src/lib/petite-vue.js" defer int></script>
  <script type="module">
    import "../lib/layui/layui.js";
    import { createApp, reactive } from "../lib/petite-vue.js";
    // 全局響應(yīng)式數(shù)據(jù)
    const store = reactive({
      currentHash: "",
    });
    function loadArticle() {
      // do ...
    }
    // 當(dāng)頁(yè)面哈希改變時(shí)執(zhí)行操作
    window.onhashchange = () => loadArticle();
    // 創(chuàng)建根作用域
    createApp({
      store,
      loadArticle,
    }).mount();
  </script>
</body>

參考鏈接

https://github.com/vuejs/petite-vue

到此這篇關(guān)于petite vue 基本使用指南的文章就介紹到這了,更多相關(guān)petite vue 使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 超詳細(xì)教程實(shí)現(xiàn)Vue底部導(dǎo)航欄TabBar

    超詳細(xì)教程實(shí)現(xiàn)Vue底部導(dǎo)航欄TabBar

    本文詳細(xì)講解了Vue實(shí)現(xiàn)TabBar底部導(dǎo)航欄的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • 深入理解Vue3組合式API的實(shí)現(xiàn)

    深入理解Vue3組合式API的實(shí)現(xiàn)

    組合式API為Vue3帶來(lái)了更好的邏輯組織和復(fù)用性,支持TypeScript,提供靈活的響應(yīng)式系統(tǒng),它允許開發(fā)者將相關(guān)邏輯組合在一起,通過(guò)composable函數(shù)實(shí)現(xiàn)邏輯復(fù)用,擺脫了mixin的缺點(diǎn),同時(shí),組合式API與TypeScript的集成更緊密,能夠提供更準(zhǔn)確的類型推斷
    2024-10-10
  • Vue 實(shí)現(xiàn)CLI 3.0 + momentjs + lodash打包時(shí)優(yōu)化

    Vue 實(shí)現(xiàn)CLI 3.0 + momentjs + lodash打包時(shí)優(yōu)化

    今天小編就為大家分享一篇Vue 實(shí)現(xiàn)CLI 3.0 + momentjs + lodash打包時(shí)優(yōu)化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue組件開發(fā)之LeanCloud帶圖形校驗(yàn)碼的短信發(fā)送功能

    Vue組件開發(fā)之LeanCloud帶圖形校驗(yàn)碼的短信發(fā)送功能

    Vue是目前使用較廣泛的三大前端框架之一,其數(shù)據(jù)驅(qū)動(dòng)及組件化的特性使得前端開發(fā)更為快捷便利。本文在LeanCloud 短信轟炸與圖形校驗(yàn)碼官方文檔 基礎(chǔ)上,從封裝需要出發(fā)開發(fā)一個(gè)簡(jiǎn)單的短信圖形驗(yàn)證Vue組件,具體內(nèi)容詳情大家參考下本文
    2017-11-11
  • Console高級(jí)用法總結(jié)

    Console高級(jí)用法總結(jié)

    Console 對(duì)象提供了瀏覽器控制臺(tái)調(diào)試的接口。在不同宿主環(huán)境上它的工作方式可能不一樣,但通常都會(huì)提供一套共性的功能,本文主要總結(jié)了Console的一些高級(jí)用法,感興趣的小伙伴可以參考一下
    2023-04-04
  • Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制

    Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制

    本文主要介紹了Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • vue 綁定使用 touchstart touchmove touchend解析

    vue 綁定使用 touchstart touchmove touchend解析

    這篇文章主要介紹了vue 綁定使用 touchstart touchmove touchend解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 如何使用 vxe-table 實(shí)現(xiàn)左邊是樹右邊是表格聯(lián)動(dòng)功能

    如何使用 vxe-table 實(shí)現(xiàn)左邊是樹右邊是表格聯(lián)動(dòng)功能

    使用 vxe-table 來(lái)實(shí)現(xiàn)左邊是樹,右邊是表格聯(lián)動(dòng)功能,當(dāng)需要實(shí)現(xiàn)左右兩側(cè)聯(lián)動(dòng)時(shí),表格 vxe-grid 配合分割模板 vxe-split 就很容易實(shí)現(xiàn)了,下面通過(guò)實(shí)例代碼給大家介紹使用 vxe-table 來(lái)實(shí)現(xiàn)左邊是樹,右邊是表格聯(lián)動(dòng)功能,感興趣的朋友一起看看吧
    2025-03-03
  • vue中v-model指令與.sync修飾符的區(qū)別詳解

    vue中v-model指令與.sync修飾符的區(qū)別詳解

    本文主要介紹了vue中v-model指令與.sync修飾符的區(qū)別詳解,詳細(xì)的介紹了兩個(gè)的用法和區(qū)別,感興趣的可以了解一下
    2021-08-08
  • 解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or?render?function

    解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or

    這篇文章主要給大家介紹了關(guān)于解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or?render?function的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01

最新評(píng)論

钟山县| 洮南市| 文化| 广州市| 海原县| 清河县| 鹤山市| 黄大仙区| 阳春市| 温宿县| 海晏县| 奈曼旗| 永定县| 上思县| 景泰县| 泽州县| 长治市| 常山县| 临沭县| 邵武市| 砀山县| 松江区| 都江堰市| 桐庐县| 顺平县| 延长县| 年辖:市辖区| 新龙县| 德化县| 汪清县| 新竹市| 通化市| 巴楚县| 牡丹江市| 醴陵市| 胶州市| 巴彦淖尔市| 邯郸市| 宝鸡市| 马龙县| 绥棱县|