petite?vue的使用示例詳解
題引:
這幾天在公司沒(méi)事做,于是上網(wǎng)看看有關(guān)vue的文章,忽然看到尤大大的一個(gè)文章:只有5kb大小的mini vue,好家伙,又整活了,這不得沖一沖嘛。
特征及使用:
petite-vue體積更小,約5bk;- 對(duì)漸進(jìn)的增強(qiáng)更加的明顯,特別是運(yùn)用在服務(wù)端渲染的頁(yè)面上更是便捷。系統(tǒng)看了一下,語(yǔ)法跟vue的語(yǔ)法絕大部分是一樣了,除了增加了一些新的語(yǔ)法糖;
- 基于reactive進(jìn)行響應(yīng)式
petite-vue的引用方式有幾種,但在舉例之前,先講一下特有的語(yǔ)法:v-scope:用于標(biāo)記被petite-vue控制的區(qū)域,里面可以定義變量,且可以在控制區(qū)域內(nèi)進(jìn)行使用。
1. CDN引入:
<!-- 正常的CDN引入 -->
<div
v-scope="{ upVotes: 0, downVotes: 0 }"
@vue:mounted="console.log('mounted on: ', $el)"
@vue:unmounted="console.log('unmounted: ', $el)"
>
<p>{{ upVotes }} <button @click="upVotes++">👍</button></p>
<p>{{ downVotes }} <button @click="downVotes++">👎</button></p>
</div>
<div v-scope="{ test:1,test1:2}">
<p v-effect="$el.textContent=test" v-show="test == 2"></p>
<p v-effect="$el.textContent=test1" @click="console.log(1123)"></p>
</div>
<div v-scope="{ array:[1,2,3,4,5,6],obj:1 }">
<div v-for="item in array">{{item}}</div>
</div>
<script src="https://unpkg.com/petite-vue" defer init></script>
效果圖:

總結(jié):在CDN引入的時(shí)候,需要在script標(biāo)簽加init屬性,因?yàn)樵搶傩詴?huì)進(jìn)行初始化操作,比如引入和調(diào)用createApp函數(shù)及掛載v-scope區(qū)域。
2.module引入
<!-- module引入方式 -->
<div v-scope>
{{count}}<div>{{count}}</div>{{count}}
</div>
<script type="module">
import { createApp } from "https://unpkg.com/petite-vue?module"
createApp({
count: 10,
get plusOne() {
return this.count + 1;
},
increment() {
this.count++;
}
}).mount()
</script>
效果圖:

總結(jié):使用module引入的時(shí)候,我們需要從線上地址引入createApp并進(jìn)行掛載,內(nèi)部會(huì)查找有v-scope屬性的標(biāo)簽并進(jìn)行正則匹配,這跟vue3的創(chuàng)建方式很像。
3. 組件化
既然petite-vue繼承了vue的絕大部分特性,那么當(dāng)然也可以使用組件化的方式來(lái)使用
<div v-scope="About({count:2})">
<p>{{count}}</p>
<button @click="inc">increment</button>
</div>
<div v-scope="Home({count:1})">
<p>{{count}}</p>
<button @click="inc">increment</button>
</div>
<script type="module">
import { createApp } from "https://unpkg.com/petite-vue?module";
function Home(props) {
return {
count: props.count,
inc() {
this.count++;
}
}
}
function About(props) {
return {
count: props.count,
inc() {
this.count++;
}
}
}
createApp({
Home,
About
}).mount();
</script>
效果圖:

總結(jié):其實(shí)這就跟CDN引入的方式很像,我們把v-scope綁定的變量注冊(cè)在createApp里,并使用函數(shù)的方式,那么在v-scope綁定的地方都可以使用這些函數(shù)。當(dāng)我們調(diào)用的時(shí)候返回一個(gè)對(duì)象,就跟我們直接v-scope="{xxx:xxx}"一樣,擴(kuò)展性還更高
4. 模板組件
我們可以發(fā)現(xiàn),組件化的例子中:Home和About組件的不同之處就是參數(shù)不同,模板是一樣的。那么我們可以使用vue中的template的思路,通過(guò)$template指定模板來(lái)進(jìn)行優(yōu)化。
<!-- 模板組件 -->
<template id="counter-template">
<div>
my count is {{count}}
</div>
</template>
<div v-scope="Counter({count:13})"></div>
<div v-scope="Counter({count:14})"></div>
<script type="module">
import { createApp } from "https://unpkg.com/petite-vue?module";
function Counter(props){
return{
$template:"#counter-template",
count:props.count,
inc(){
this.count++
}
}
}
createApp({
Counter
}).mount()
</script>
效果圖:

結(jié)尾:
以上就是petite-vue的一個(gè)簡(jiǎn)單使用手冊(cè),當(dāng)然其他的用法大家可以上GitHub上進(jìn)行略讀,但總體上跟vue的使用方式和思路是十分相像的。
以上就是petite vue的使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于petite vue使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解從react轉(zhuǎn)職到vue開(kāi)發(fā)的項(xiàng)目準(zhǔn)備
這篇文章主要介紹了詳解從react轉(zhuǎn)職到vue開(kāi)發(fā)的項(xiàng)目準(zhǔn)備,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的實(shí)例詳解
這篇文章主要介紹了Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的實(shí)例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
基于腳手架創(chuàng)建Vue項(xiàng)目實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了基于腳手架創(chuàng)建Vue項(xiàng)目實(shí)現(xiàn)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Vue與Node.js通過(guò)socket.io通信的示例代碼
這篇文章主要介紹了Vue與Node.js通過(guò)socket.io通信的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
element-ui中select下拉框加載大數(shù)據(jù)渲染優(yōu)化方式
這篇文章主要介紹了element-ui中select下拉框加載大數(shù)據(jù)渲染優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法
這篇文章主要介紹了Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
vue使用動(dòng)態(tài)組件手寫(xiě)Router View實(shí)現(xiàn)示例
這篇文章主要為大家介紹了vue使用動(dòng)態(tài)組件手寫(xiě)RouterView實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

