petite?vue的使用示例詳解
題引:
這幾天在公司沒事做,于是上網(wǎng)看看有關vue的文章,忽然看到尤大大的一個文章:只有5kb大小的mini vue,好家伙,又整活了,這不得沖一沖嘛。
特征及使用:
petite-vue
體積更小,約5bk;- 對漸進的增強更加的明顯,特別是運用在服務端渲染的頁面上更是便捷。系統(tǒng)看了一下,語法跟vue的語法絕大部分是一樣了,除了增加了一些新的語法糖;
- 基于reactive進行響應式
petite-vue
的引用方式有幾種,但在舉例之前,先講一下特有的語法:v-scope
:用于標記被petite-vue
控制的區(qū)域,里面可以定義變量,且可以在控制區(qū)域內(nèi)進行使用。
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>
效果圖:
總結:在CDN引入的時候,需要在script標簽加init屬性,因為該屬性會進行初始化操作,比如引入和調用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>
效果圖:
總結:使用module引入的時候,我們需要從線上地址引入createApp并進行掛載,內(nèi)部會查找有v-scope屬性的標簽并進行正則匹配,這跟vue3的創(chuàng)建方式很像。
3. 組件化
既然petite-vue繼承了vue的絕大部分特性,那么當然也可以使用組件化的方式來使用
<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>
效果圖:
總結:其實這就跟CDN引入的方式很像,我們把v-scope綁定的變量注冊在createApp里,并使用函數(shù)的方式,那么在v-scope綁定的地方都可以使用這些函數(shù)。當我們調用的時候返回一個對象,就跟我們直接v-scope="{xxx:xxx}"一樣,擴展性還更高
4. 模板組件
我們可以發(fā)現(xiàn),組件化的例子中:Home和About組件的不同之處就是參數(shù)不同,模板是一樣的。那么我們可以使用vue中的template的思路,通過$template
指定模板來進行優(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>
效果圖:
結尾:
以上就是petite-vue的一個簡單使用手冊,當然其他的用法大家可以上GitHub上進行略讀,但總體上跟vue的使用方式和思路是十分相像的。
以上就是petite vue的使用示例詳解的詳細內(nèi)容,更多關于petite vue使用的資料請關注腳本之家其它相關文章!
相關文章
Vue創(chuàng)建淺層響應式數(shù)據(jù)的實例詳解
這篇文章主要介紹了Vue創(chuàng)建淺層響應式數(shù)據(jù)的實例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解
這篇文章主要介紹了基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08element-ui中select下拉框加載大數(shù)據(jù)渲染優(yōu)化方式
這篇文章主要介紹了element-ui中select下拉框加載大數(shù)據(jù)渲染優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Vue+ElementUI項目使用webpack輸出MPA的方法
這篇文章主要介紹了Vue+ElementUI項目使用webpack輸出MPA的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08vue使用動態(tài)組件手寫Router View實現(xiàn)示例
這篇文章主要為大家介紹了vue使用動態(tài)組件手寫RouterView實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06