写在前面

他的来源是什么

他能做什么

演示一下?

  • 我自己也试了一下他的功能,使用起来是比较简单的,可以像使用 jQuery 一样的方式直接引入 CDN 或者是 npm i 安装也是可以的,那么之后我们就可以直接在 html 中使用他的语法了

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>测试 htmx 的用法</title>
    		<script src="./js/htmx@1.9.5htmx.min.js" integrity="sha384-xcuj3WpfgjlKF+FXhSQFQ0ZNr39ln+hwjN3npfM9VBnUskLolQAcN80McRIVOPuO" crossorigin="anonymous"></script>
    	</head>
    	<body>
    		<script type="text/javascript">
    			// const baseGetRequest = 'http://jsonplaceholder.typicode.com/users'
    			// window.baseGet = baseGetRequest
    		</script>
    		<!-- 测试基础的 get 请求 -->
    		<div hx-get="http://jsonplaceholder.typicode.com/users">
    			Put To Messages
    		</div>
    		<!-- 测试基础的 post 请求  并将请求的结果给到另一个 span 的元素上 -->
    		<div hx-post="http://jsonplaceholder.typicode.com/posts/1/comments" hx-target='#aimDiv'>测试一条数据</div>
    		<span id="aimDiv"></span>
    
    		<!-- 模拟一个对话框的请求 -->
    		<button hx-get="http://jsonplaceholder.typicode.com/users" hx-confirm="Are you sure you wish to delete your account?">
    			Delete My Account
    		</button>
    
    		<!-- 测试一个 boost 的请求 -->
    		<div hx-boost="true">
    			<a href="http://jsonplaceholder.typicode.com/users">Blog</a>
    		</div>
    
    		<!-- 测试一个表单 -->
    		<div id="search-results"></div>
    		<form action="/search" method="POST">
    			<input class="form-control" type="search" name="search" placeholder="Begin typing to search users..." hx-post="http://jsonplaceholder.typicode.com/posts/1/comments" hx-trigger="keyup changed delay:500ms, search" hx-target="#search-results" hx-indicator=".htmx-indicator">
    		</form>
    
    		<!-- 测试 table -->
    		<input class="form-control" type="search" name="search" placeholder="Begin Typing To Search Users..." hx-post="http://jsonplaceholder.typicode.com/posts/1/comments" hx-trigger="keyup changed delay:500ms, search" hx-target="#search-results" hx-indicator=".htmx-indicator">
    		<table class="table">
    			<thead>
    				<tr>
    					<th>First Name</th>
    					<th>Last Name</th>
    					<th>Email</th>
    				</tr>
    			</thead>
    			<tbody id="search-results">
    			</tbody>
    		</table>
    	</body>
    </html>
    
    • 上面那段代码执行结果如图:

    聊聊 HTMX 吧-LMLPHP

聊聊 HTMX 吧-LMLPHP

它提供了哪些便利

  • 请求不需要封装函数
  • 防抖节流直接通过属性进行配置
  • 请求方式直接通过属性进行配置
  • 回参渲染到某个元素可以指定
  • 指定的方式很多(css 选择器、元素选择器等)
  • 局部内容替换成本很低
  • 前端代码量极少
  • 浏览器渲染速度很快

他有哪些劣势

  • 项目体量不可以过大,这样对服务器的压力太大
  • 过于复杂的操作不太可行,毕竟他都是通过配置的,配置就意味着定制化的需求满足程度不会太高
  • 过于依赖服务器,前端只是进行配置
  • 对Django的依赖也比较大,因为他就是配合他用的(这里我也问了一下我身边使用Django的朋友,他给的回复是:jango 内置了 web 开发工具,可以用 {} 直接获取 response 对象属性。在前后端不分离年代还是挺厉害。现在不行了)

个人推荐程度,我想说几句

写在后面

09-07 12:49