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

petite vue 基本使用指南示例小結

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

前言

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

不過,它專門針對在由服務器框架呈現的現有 HTML 頁面上“散布”少量交互進行了優(yōu)化。

petite-vue,它在提供 vue 基本功能的同時,還能一個輕量級,簡單應用的微框架,這樣也能保證開發(fā)者有一個不錯的使用體驗。

  • 只有 ~6kb
  • 兼容 Vue 的模板語法
  • 基于 DOM,就地變化
  • 由 @vue/reactivity 驅動
  • 無需構建

引入項目

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>

當然也可以把該地址內部代碼全部賦值到本地 js 文件中使用

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

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

  • init 屬性會告訴 petite-vue 自動查詢和初始化頁面上所有具有 v-scope 的元素

  • v-scope 標記頁面上需要使用 petite-vue 渲染的地方

根作用域

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

<script type="module">
  import { createApp } from "../lib/petite-vue.js";
  createApp({
    // 暴露出的數據 直接寫在 createApp 內的是響應式數據
    count: 0,
    // getter
    get plusOne() {
      return this.count + 1;
    },
    // methods
    increment() {
      this.count++;
    },
  }).mount();
</script>
<div v-scope>
  <!-- 經典的插值表達式 -->
  <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";
  // 定義單獨一個對象存放數據 需要 reactive 來轉為響應式數據
  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">增加全局數據</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>

組件

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

按照 Vue 的習慣, 也可以使用一個 js 文件作為一個組件

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

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

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

<!-- index.html -->
<!-- 使用組件 傳遞參數200 且在掛載時觸發(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" 這個print方法的作用域是組件內的print

基本示例

<!-- 在頁面載入時執(zhí)行函數 -->
<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">導航欄</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";
    // 全局響應式數據
    const store = reactive({
      currentHash: "",
    });
    function loadArticle() {
      // do ...
    }
    // 當頁面哈希改變時執(zhí)行操作
    window.onhashchange = () => loadArticle();
    // 創(chuàng)建根作用域
    createApp({
      store,
      loadArticle,
    }).mount();
  </script>
</body>

參考鏈接

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

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

相關文章

  • vue3+vite中報錯信息處理方法Error: Module “path“ has been externalized for browser compatibility...

    vue3+vite中報錯信息處理方法Error: Module “path“ has&nb

    這篇文章主要介紹了vue3+vite中報錯信息處理方法Error: Module “path“ has been externalized for browser compatibility...,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 詳解Vue 全局引入bass.scss 處理方案

    詳解Vue 全局引入bass.scss 處理方案

    本篇文章主要介紹了詳解Vue 全局引入bass.scss 處理方案,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • vue計算屬性時v-for處理數組時遇到的一個bug問題

    vue計算屬性時v-for處理數組時遇到的一個bug問題

    這篇文章主要介紹了在做vue計算屬性,v-for處理數組時遇到的一個bug 問題,需要的朋友可以參考下
    2018-01-01
  • 如何在Vue3中使用Ref訪問DOM元素詳解

    如何在Vue3中使用Ref訪問DOM元素詳解

    在Vue3中可以使用`ref`來獲取DOM元素,下面這篇文章主要給大家介紹了關于如何在Vue3中使用Ref訪問DOM元素的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Vue中$router和$route的區(qū)別詳解

    Vue中$router和$route的區(qū)別詳解

    在 Vue.js 中,$router 和 $route 是兩個常用的對象,用于處理路由相關的操作,下面小編就來和大家介紹一下$router 和 $route 的區(qū)別以及如何使用它們吧
    2023-06-06
  • Vue2?響應式系統(tǒng)之異步隊列

    Vue2?響應式系統(tǒng)之異步隊列

    這篇文章主要介紹了Vue2?響應式系統(tǒng)之異步隊列,文章基于Vue2?的相關資料展開對主題的詳細介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-04-04
  • vue中前端如何實現pdf預覽功能(含vue-pdf插件用法)

    vue中前端如何實現pdf預覽功能(含vue-pdf插件用法)

    這篇文章主要給大家介紹了vue中前端如何實現pdf預覽功能的相關資料,文中包含vue-pdf插件用法,在前端開發(fā)中,很多時候我們需要進行pdf文件的預覽操作,需要的朋友可以參考下
    2023-07-07
  • vue3 el-pagination 將組件中英文‘goto’ 修改 為 中文到‘第幾’

    vue3 el-pagination 將組件中英文‘goto’ 修改 為&nbs

    這篇文章主要介紹了vue3 el-pagination 將組件中英文‘goto’ 修改 為 中文到‘第幾’,通過實例代碼介紹了vue3項目之Pagination 組件,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 關于vue中如何監(jiān)聽數組變化

    關于vue中如何監(jiān)聽數組變化

    這篇文章主要介紹了關于vue中如何監(jiān)聽數組變化,對vue感興趣的同學,必須得參考下
    2021-04-04
  • vue+ElementUi+iframe實現輪播不同的網站

    vue+ElementUi+iframe實現輪播不同的網站

    需要實現一個輪播圖,輪播內容是不同的網站,并實現鼠標滑動時停止輪播,當鼠標10秒內不動時繼續(xù)輪播,所以本文給大家介紹了用vue+ElementUi+iframe實現輪播不同的網站,需要的朋友可以參考下
    2024-02-02

最新評論