国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

這幾天,寫了一個Strview.js

開發 前端
Strview.js是一個可以將字符串轉換為視圖的JS庫。這里的字符串一般指的是模板字符串。當然你也可以使用普通字符串,只不過在特定場景下普通字符串更有局限性。

[[417014]]

前言

最近,這幾周更新文章的頻率明顯比之前有所降低。不是懶,主要是最近想沉淀沉淀。休息的這幾天我也有所收獲,抽著晚上的空打算自己寫一個玩具JS庫玩玩。不像很多大型框架那樣,在開發之前都有嚴思縝密的計劃。然而,我就只想動手嘗試嘗試。所以,我寫了一個叫Strview.js這樣一個玩具JS庫。

如果您想看看呢?可以繼續讀下去。如果覺得沒啥意思的話,那可以當做一篇爛文章,直接跳過也可以啊!

介紹

Strview.js是一個可以將字符串轉換為視圖的JS庫。這里的字符串一般指的是模板字符串。當然你也可以使用普通字符串,只不過在特定場景下普通字符串更有局限性。所以,優先使用模板字符串。其次Strview.js 只關注視圖層,不僅易于上手,還便于靈活拆裝不同的代碼塊。

這里是中文官方文檔地址:

  1. https://www.maomin.club/site/strviewjs/zh 

如果您想上手項目,那么請看下面怎么安裝它吧!

安裝

CDN

直接引入以下地址:

  1. <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 

如果你使用原生 ES Modules,這里也有一個兼容 ES Module 的構建文件:

  1. <script type="module"
  2.   import { createView } from 'https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.esm.js' 
  3. </script> 

NPM

最新穩定版本:1.8.0

  1. npm install strview 

命令行工具 (CLI)

strviewApp是基于strview.js的項目構建工具,您可以使用它更方便靈活地搭建頁面。如何安裝它,你可以使用strviewCli來快速安裝strviewApp。

全局安裝

  1. npm install strview-cli -g 

查看版本

  1. strview-cli -v 

初始化項目

  1. strview-cli init <projectName> 

快速上手

嘗試 Strview.js 最簡單的方法是使用 Hello World 例子。你可以在瀏覽器新標簽頁中打開它,跟著例子學習一些基礎用法。你可以使用CDN版本下的strview.global.js。使用這個文件,會將Strview全局暴露,您可以直接調用。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         Strview.createView({ 
  16.             el: "#app"
  17.             data: { 
  18.                 msg: 'Hello World' 
  19.             }, 
  20.             template: `<p>{msg}</p>`, 
  21.         }); 
  22.     </script> 
  23. </body> 
  24.  
  25. </html> 

如下圖所示:

  1. Hello World 

基本使用

創建視圖

使用createView方法傳入一個對象,對象屬性分別為el、data、template。el表示為要掛載的DOM 元素,data表示為觀察的數據對象,template表示為DOM模板字符串。定義好這三個屬性之后就可以生成一個預想的視圖頁面。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         Strview.createView({ 
  16.             el: "#app"
  17.             data: { 
  18.                 msg: 'Hello Strview.js' 
  19.             }, 
  20.             template: `<p>{msg}</p>`, 
  21.         }); 
  22.     </script> 
  23. </body> 
  24.  
  25. </html> 
  1. Hello Strview.js 

條件渲染

只適用于初次渲染。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         let isOk = false
  16.         Strview.createView({ 
  17.             el: "#app"
  18.             data: { 
  19.                 msg: 'Hello Strview.js'
  20.                 isOk:false 
  21.             }, 
  22.             template: ` 
  23.             <p>{msg}</p> 
  24.             ${isOk ? `<span>hide</span>` : ''
  25.             `, 
  26.         }); 
  27.     </script> 
  28. </body> 
  29.  
  30. </html> 
  1. Hello Strview.js 

列表渲染

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         let liNodes = ``; 
  16.         for (let index = 1; index < 3; index++) { 
  17.             liNodes += `<li>${index}</li>` 
  18.         } 
  19.         const app = Strview.createView({ 
  20.             el: '#app'
  21.             template: `<ul>${liNodes}</ul>` 
  22.         }) 
  23.     </script> 
  24. </body> 
  25.  
  26. </html> 
  1. 1 2 

事件處理

eventListener方法一共有三個參數,分別是DOM節點、事件名稱、回調函數。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         Strview.createView({ 
  16.             el: "#app"
  17.             data: { 
  18.                 msg: 'Hello Strview.js'
  19.             }, 
  20.             template: ` 
  21.             <p>{msg}</p> 
  22.             `, 
  23.         }); 
  24.  
  25.         Strview.eventListener('p''click', () => { 
  26.             console.log(1); 
  27.         }); 
  28.     </script> 
  29. </body> 
  30.  
  31. </html> 

響應性數據

ref

針對單一簡單屬性。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         Strview.createView({ 
  16.             el: "#app"
  17.             data: { 
  18.                 msg: 'Hello Strview.js'
  19.             }, 
  20.             template: ` 
  21.             <p>{msg}</p> 
  22.             `, 
  23.         }); 
  24.  
  25.         Strview.eventListener('p''click', () => { 
  26.             Strview.ref().msg = 1; 
  27.         }); 
  28.     </script> 
  29. </body> 
  30.  
  31. </html> 

reactive

針對復雜屬性。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  
  4. <head> 
  5.     <meta charset="UTF-8"
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge"
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0"
  8.     <title>Strview.js</title> 
  9. </head> 
  10.  
  11. <body> 
  12.     <div id="app"></div> 
  13.     <script src="https://cdn.jsdelivr.net/npm/strview@1.8.0/dist/strview.global.js"></script> 
  14.     <script> 
  15.         Strview.createView({ 
  16.             el: "#app"
  17.             data: { 
  18.                 obj: { 
  19.                     a: 1, 
  20.                     b: 2 
  21.                 } 
  22.             }, 
  23.             template: ` 
  24.             <button class="btn1">change</button> 
  25.             <p>{obj.a}</p> 
  26.             <p>{obj.b}</p> 
  27.             `, 
  28.         }); 
  29.  
  30.         Strview.eventListener('.btn1''click', () => { 
  31.             Strview.reactive()['obj.a'] = 2; 
  32.             Strview.reactive().obj.b = 3; 
  33.         }); 
  34.     </script> 
  35. </body> 
  36.  
  37. </html> 

部署

如果您使用strviewApp這個項目構建工具,你可以這樣部署您的項目。

  1. npm run build 

or

  1. yarn build 

結語

以上就是Strview.js大概介紹了,需要改進的地方肯定很多。寫出來也是為了拿出一點東西來,還有就是吸取大家的意見,讓自己可以更快地成長。

備注

以下是源碼地址:

 

  • https://github.com/maomincoding/strview
  • https://github.com/maomincoding/strview-app
  • https://github.com/maomincoding/strview-cli
  • 本文轉載自微信公眾號「前端歷劫之路」,可以通過以下二維碼關注。轉載本文請聯系前端歷劫之路公眾號。

 

責任編輯:武曉燕 來源: 前端歷劫之路
相關推薦

2021-09-05 17:22:08

Strview.js工具js

2021-08-30 06:59:06

StrviewAppStrview.js項目

2020-11-02 08:19:18

RPC框架Java

2024-02-22 17:13:19

Sora人工智能OpenAI

2009-09-02 18:36:46

LinuxLinux操作系統Linux開發

2022-03-24 07:57:58

Python水果忍者游戲

2018-03-02 09:25:23

IT編程機器學習阿里巴巴

2021-02-02 11:59:15

插件開發工具

2021-06-07 10:20:31

2021-02-20 07:52:35

防猝死插件 IDEA

2025-04-07 04:00:00

教學型任務調度系統

2022-09-30 13:55:46

Python機器人

2025-05-13 01:00:00

2013-03-18 10:31:22

JS異常

2020-12-28 05:54:37

構造builder模式

2021-03-11 08:32:58

參數模式構造

2021-04-26 09:20:24

蜜罐網絡安全網絡攻擊

2024-08-14 08:35:38

sql數據庫OOM 異常

2021-07-01 07:43:41

項目程序員代碼

2023-12-28 08:01:59

點贊
收藏

51CTO技術棧公眾號

日本一区二区免费在线观看视频| 无套内精的网站| 亚洲欧洲偷拍精品| 94色蜜桃网一区二区三区| 伊人色**天天综合婷婷| 国产精品sm| 成人精品一区二区三区中文字幕| 久久品道一品道久久精品| 午夜精品久久久久影视| 色欧美片视频在线观看在线视频| 成人午夜av影视| 亚洲欧美偷拍卡通变态| 在线观看欧美黄色| 成人精品视频99在线观看免费| 久久国产成人精品国产成人亚洲| 欧美精品一区二区三区久久| 欧美高清视频在线播放| 亚洲精品一区二区三区婷婷月| 亚洲视频一区二区免费在线观看| 天堂成人免费av电影一区| 日韩在线观看一区二区| 亚洲人成网站在线| 精品国产区一区| 91九色蝌蚪国产| 日韩福利影院| 狠狠v欧美ⅴ日韩v亚洲v大胸| 三级成人在线| 欧美三级午夜理伦三级在线观看| 欧美午夜18电影| 97精品国产99久久久久久免费| 免费观看成人www动漫视频| 亚洲高清资源在线观看| 国产日韩欧美在线播放不卡| 国产亚洲女人久久久久毛片| 欧美裸体bbwbbwbbw| 午夜免费久久久久| 日本a级片在线观看| 午夜精彩视频| aa级大片免费在线观看| 在线视频国产区| 免费无码av片在线观看| 人成网站免费观看| 激情小说一区| 国产综合色在线| 亚洲大片免费看| 久久国产精品久久精品| 无遮挡亚洲一区| 成人在线二区| 亚洲国产精品成人| 亚洲另类一区二区| 色哟哟网站入口亚洲精品| 日日骚一区二区网站| 国产原创精品视频| 久久精品一区| 疯狂做受xxxx高潮欧美日本| 国产精品久久久久久五月尺| 可以免费看污视频的网站| 亚洲一区有码| 久久伊99综合婷婷久久伊| 亚洲欧美日韩一区二区三区在线| 国产精品一区二区三区精品| 国产在线观看精品一区| 在线亚洲观看| 精品国产乱子伦一区| 日本一区免费观看| 在线欧美三级| 美日韩一区二区| 亚洲精品福利视频| 999久久欧美人妻一区二区| 精品久久国产一区| 国产精品天天看| 欧美在线观看网址综合| 免费高清视频日韩| 偷拍欧美精品| 亚洲成人激情视频| 一区二区不卡在线视频 午夜欧美不卡' | 欧美专区福利在线| 黄色成人免费看| 欧美人妖在线观看| 五月天一区二区三区| 蜜桃成人在线| av久久网站| 亚洲色图欧美在线| 91精品在线观| 视频在线这里都是精品| 99视频有精品| 国产欧美精品va在线观看| 成人影视在线播放| 99久久精品国产麻豆演员表| 国产精品美乳一区二区免费| 91麻豆免费在线视频| 国产欧美日韩激情| 成人日韩在线电影| 成人在线爆射| 一区二区三区在线看| 日韩高清国产精品| 久久国产精品免费一区二区三区| 亚洲一区二区在线观看视频 | 欧美黑粗硬大| 蜜芽一区二区三区| 精品国偷自产在线视频| 中文字幕不卡| 喷水一区二区三区| 久久综合亚洲社区| 国产情侣av自拍| 日韩中文字幕高清在线观看| 日韩欧美国产一区在线观看| 国产v亚洲v天堂无码久久久 | 国产精品污www在线观看| 91亚洲永久免费精品| 97在线超碰| 久久先锋资源网| 好看的日韩精品| 一区中文字幕| 欧美日韩综合视频网址| 久久青青草综合| 日韩精品一区二区三区中文| 日本久久电影网| 国产精品免费观看久久| 91一区二区三区在线播放| 国产精品视频一区二区高潮| 色偷偷偷在线视频播放| 亚洲国产综合在线| 国产精品㊣新片速递bt| 精品一区二区三区欧美| 精品国产一区二区三区忘忧草 | 久久精品一区二| 日韩精品电影在线观看| 国产精品aaaa| 日韩毛片免费视频一级特黄| 91精品免费在线| 日韩精品系列| 99国产精品自拍| 欧美成人一区二区三区电影| 色操视频在线| 91国内精品野花午夜精品| 777视频在线观看| 国产日韩亚洲欧美综合| 1024精品视频| 久久精品国产色蜜蜜麻豆| 国产精品免费网站| 精品99re| 播播国产欧美激情| 欧美专区福利免费| 亚洲码在线观看| 天堂在线中文字幕| 国产精品久久久久影院色老大| 亚欧洲精品在线视频免费观看| 国产精品xvideos88| 国产精品网红福利| 蜜桃一区二区| 国产精品99久久久久久久| 精品美女视频| 欧日韩不卡在线视频| 国产亚洲精品久久久久婷婷瑜伽| 国产精品久久久久高潮| 久久97视频| 人妻无码一区二区三区四区| 成人性视频免费网站| 国产精品无码一区二区在线| 2020国产精品自拍| 国产aa视频| 欧美变态凌虐bdsm| а√天堂8资源在线| 亚洲色图美腿丝袜| 国产精品美女久久久久| 性欧美暴力猛交69hd| 97欧美在线视频| 日本视频一区在线观看| 成人免费视频视频| a在线观看免费视频| 午夜精品爽啪视频| 成年人黄视频在线观看| 一区二区三区四区蜜桃| 最新亚洲伊人网| 色综合久久66| 美女100%一区| 91精品国产91久久久久久最新| 亚洲人成免费网站| 免费毛片一区二区三区久久久| 美女尤物久久精品| 国产高清av在线播放| 亚洲天堂免费看| 欧美三级黄网| 久久人人爽人人爽人人片av高请 | 无码中文字幕色专区| ...xxx性欧美| 中文字幕在线视频区| 一区二区欧美亚洲| 午夜欧美视频| 中日韩免费毛片| 亚洲视频在线观看视频| 国产一区不卡| 欧美日韩亚洲国产成人| 亚洲主播在线观看| 黄在线观看免费网站ktv| 26uuu另类亚洲欧美日本一| 国产午夜精品一区二区三区欧美 | 亚洲韩国日本中文字幕| 亚洲人成网亚洲欧洲无码|