MUI 前端框架体验

article/2025/9/24 2:19:33

   前端框架有很多,在做混合开发APP 时,MUI 的UI 看起来更像原生APP,所以就选择MUI 来体验一下。

        1 首先下载 安装 HBuilder X

        2  创建并选择5+app 项目

           image.png

        3.比较关键的index页面 

Markup

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title></title><script src="js/mui.min.js"></script><script src="js/jquery.min.js"></script>	<link href="css/mui.min.css" rel="stylesheet"/>
</head>
<body>	<!-- 主页面标题 -->  <!-- 主页面内容容器 --><div class="mui-content" ></div><!-- 底部导航 --><nav  class="mui-bar mui-bar-tab"><a href="home.html" class="mui-tab-item mui-active" id="defaultTab"><span class="mui-icon mui-icon-home"></span><span class="mui-tab-label">首页</span></a><a href="subscribe.html" class="mui-tab-item"><span class="mui-icon mui-icon-star"></span><span class="mui-tab-label">订阅</span></a><a href="search.html" class="mui-tab-item"><span class="mui-icon mui-icon-search"></span><span class="mui-tab-label">搜索</span></a><a href="calendar.html" class="mui-tab-item"><span class="mui-icon mui-icon mui-icon mui-icon-pengyouquan"></span><span class="mui-tab-label">币历</span></a><a href="my.html" class="mui-tab-item"><span class="mui-icon mui-icon-contact"><span style="display: none;" class="mui-badge">0</span></span><span class="mui-tab-label">我的</span></a></nav><script type="text/javascript">mui.init({gestureConfig:{doubletap:true},subpages:[{url:'home.html',id:'MainViwe',styles:{top: '30px',bottom: '51px'}}]});mui('.mui-scroll-wrapper').scroll({deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006});//底部选项卡切换跳转(function jumpPage(){//跳转页面var subpages = ['index.html','subscribe.html','search.html','calendar.html', 'my.html'];var subpage_style = {top: '44px',bottom: '51px'};var Index=0;var actTab=subpages[Index],tittle=document.querySelector('.mui-title');var aniShow = {};//动画显示//首次启动切滑效果//当前激活选项var activeTab = subpages[0];         //选项卡点击事件mui('.mui-bar-tab').on('tap', 'a', function(e) {//修改对应分页var targetTab = this.getAttribute('href');$('#MainViwe').attr('src',targetTab);//修改标题              //tittle.innerHTML=this.querySelector('.mui-tab-label').innerHTML;});//自定义事件,模拟点击“首页选项卡”document.addEventListener('gohome', function() {var defaultTab = document.getElementById("defaultTab");//模拟首页点击mui.trigger(defaultTab, 'tap');//切换选项卡高亮var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");if (defaultTab !== current) {current.classList.remove('mui-active');defaultTab.classList.add('mui-active');}});})()</script></body>
</html>

        4 其它子页面就大多小异了,做一个例子

Markup

<!doctype html>
<html><head><meta charset="utf-8"><title></title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link href="css/mui.css" rel="stylesheet" /><script src="js/mui.js"></script></head><body><div class="mui-input-row mui-search"><input type="search"  id="searchInput" onkeyup="enterSearch(event)" class="mui-input-clear" placeholder=""></div><center><b>热门搜索</b></center><ul><li id="htop1" onclick="htop('htop1')" ><a >比特币</a></li><li id="htop2" onclick="htop('htop2')" ><a >莱特币</a></li><li id="htop3" onclick="htop('htop3')"><a >区块链</a></li>		</ul><ul id='infolist' class="mui-table-view"></ul><script type="text/javascript">mui.init()// 搜索事件,获取搜索关键词function enterSearch(event){if(event.keyCode == 13) {//用户点击回车的事件号为13var keyword = document.getElementById('searchInput').value;//alert(keyword);getnews(keyword);}}function htop(index){var keyword=document.getElementById(index).innerText;getnews(keyword);}function newwindow(detailsid){mui.openWindow({url:'details.html?newsid='+detailsid,id:'newsid',})}function getnews(key){mui.toast(key);var url="server/getnews.php?type=101&key="+key;			//console.log(url);mui.ajax(url,{dataType:'json',type:'get',timeout:10000,success:function(data){				      if(data.result==1){//成功var list_innerhtml="";//mui.toast(data.data.length);for (let i = 0; i < data.data.length; i++) {let logo=data.data[i].source;let title=data.data[i].title;let describe=data.data[i].details;let newsid=data.data[i].id;list_innerhtml=list_innerhtml+"\<li class='mui-table-view-cell mui-media'>\<a href=javascript:newwindow("+newsid+")>\<img class='mui-media-object mui-pull-left' src=images/"+logo+".png>\<div class='mui-media-body'>\"+title.substring(0,6)+"\<p class='mui-ellipsis'>"+title+"</p>\</div>\</a>\</li>\";										}document.getElementById("infolist").innerHTML=list_innerhtml;// mui.toast(data.data[0].logo);//var js_obj=JSON.parse(data.data);																	 //mui.toast(js_obj);				   }else{//失败			         mui.toast("错误,请稍候重试");}},error:function(){mui.toast("未知错误,请重试");}});}</script></body></html>

        5 前端UI有 了,后端数据也得跟上,我采用无框架PHP 做相关请求的服务程序

PHP

<?
$db_username="xxx";
$db_password="xxx";
$db_host="127.0.0.1";
$db_name="xxx";
$conn = new mysqli($db_host, $db_username, $db_password, $db_name);
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);}function db_select($sql){//$sql = "SELECT id, firstname, lastname FROM MyGuests";$result = $conn->query($sql); if ($result->num_rows > 0) {      while($row = $result->fetch_assoc()) {$rt[]=$row;}} else {$rt=[];}return $rt;
}
function db_update($sql){$result = $conn->query($sql); if($result){$rt=true;}else{$rt=false;}return $rt;
}   
function db_insert($sql){$result = $conn->query($sql); if($result){$rt=true;}else{$rt=false;}return $rt;
}?>

        6 做为一个新闻采集的,基本的爬虫样例也来一个

Python

#coding=utf-8
import requests,pymysql,re,os,json,datetime,configparser,time,sys
from bs4 import BeautifulSoup#pip3 install pymysql
#pip3 install Beautifulsoup4 
class C_myspider:cur_count=0max_count=10ip="127.0.0.1"user="xxx"passwd="xxx"database="xxx"   conn=Nonedef __init__(self):     pass  self.conn = pymysql.connect(host=self.ip,database=self.database, charset='utf8',user=self.user, password=self.passwd)  def __del__(self):   passself.conn.close()def checkisexist(self,in_title):rt=0#self.conn = pymysql.connect(self.ip,self.user,self.passwd)self.conn.select_db('vtop_91hu_top')cur=self.conn.cursor()#获取游标sqlStr="SELECT id from vtop_news WHERE title='"+in_title +"'LIMIT 1;"      cur.execute(sqlStr)while 1:res=cur.fetchone()if res is None:#表示已经取完结果集breakrt=rescur.close()self.conn.commit()#self.conn.close()return rt def insertnews(self,source,title,createtime,details):  if self.checkisexist(title):print(title+"is exist!")return False   #con = pymysql.connect(host=self.ip,database=self.database, charset='utf8',user=self.user, password=self.passwd)try:# 2. 通过连接对象获取游标with self.conn.cursor() as cursor:# 3. 通过游标执行SQL并获得执行结果result = cursor.execute('INSERT INTO vtop_news (source,title,details,collectionsum,likesum,createtime,visitorsum) VALUES (%s, %s, %s, %s, %s, %s, %s)',(source,title,details,"0","0",createtime,"0"))                if result == 1:print('Details添加成功!')self.cur_count+=1# 4. 操作成功提交事务self.conn.commit()finally:# 5. 关闭连接释放资源#conn.close()passdef bitcoin86(self):          url="https://www.bitcoin86.com/news/"r=requests.get(url)soup=BeautifulSoup(r.text,"html.parser")hreflist=soup.find_all("div",class_="m-news-item")for item in hreflist:href=item.find("a",target="_blank").get("href")newsurl="https://www.bitcoin86.com"+href#print(newsurl)r2=requests.get(newsurl)soup2=BeautifulSoup(r2.text,"html.parser")source='bitcoin86'title=soup2.find("h1").get_text()createtime=soup2.find("span",class_="date").get_text()details=str(soup2.find("article",class_="article-content"))#print(source,title,createtime,details)self.insertnews(source,title,createtime,details)def jinse(self):url="https://www.jinse.com/news/"r=requests.get(url)soup=BeautifulSoup(r.text,"html.parser")hreflist=soup.find_all("div",class_="list clearfix")for item in hreflist:newsurl=item.find("a",target="_blank").get("href")  createtime=soup.find("span",class_="left margin-l16").get_text()      #print(newsurl)r2=requests.get(newsurl)soup2=BeautifulSoup(r2.text,"html.parser")source='jinse'title=soup2.find("h1").get_text()            details=str(soup2.find("div",class_="js-article"))#print(source,title,createtime,details)self.insertnews(source,title,createtime,details)
if __name__ == "__main__":msp=C_myspider()     msp.bitcoin86()  msp.jinse()

    7.将定时任务加入到自动任务

Bash

0 */1 * * * python /www/wwwroot/xxx/spider/spidertask.py

    

源码资源包:    

vtop.rar

原文链接:http://91hu.top/post/13.html


http://chatgpt.dhexx.cn/article/g2FR8b2c.shtml

相关文章

Android引入QMUI框架

前言 作为一个JAVA后端开发&#xff0c;学习Android开发&#xff0c;Android原生UI控件样式单一&#xff0c;简单&#xff0c;下面考虑引入UI框架QMUI。具体步骤如下&#xff1a; 一、创建一个Empty项目 二、打开QMUI官网查看相关步骤(对新手很不友好) https://qmuiteam.com…

vue框架和uniapp框架区别,前端vue和uniapp哪个好用

uniapp和vue有什么区别&#xff1f; vue和uni-app的区别如下&#xff1a;1、uni-app可以通过打包实现一套代码多端运行&#xff0c;而vue不行。2、uni-app有自动的框架预载&#xff0c;加载页面的速度更快&#xff0c;vue没有。 3、uniapp使用小程序的标签&#xff0c;vue使用…

vue介绍及vue与其它框架的优缺点

一.vue介绍 1.什么是vue.js Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有…

MUI框架-05-用MUI做简单App界面

MUI框架-05-用MUI做一个简单App MUI 是一个前端框架&#xff0c;前端框架就像 Bootstrap&#xff0c;EasyUI&#xff0c;Vue ,为了做 app 呢&#xff0c;就有了更加高效的 MUI&#xff0c;我觉得前端框架有很多&#xff0c;也没有必要都取掌握&#xff0c;找一个比较出名的&am…

MUI--高性能前端框架

MUI是什么&#xff1f; 最接近原生APP体验的高性能前端框架。 相比同类框架的优势&#xff1f; 性能和体验的差距&#xff0c;一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、无法流畅下拉刷新、侧滑抽屉卡顿等问题…

移动端开发框架mui介绍

MUI 官网&#xff1a;https://www.dcloud.io/mui.html MUI 文档&#xff1a;https://dev.dcloud.net.cn/mui/ui/ 演示地址&#xff1a;https://dcloud.io/hellomui/ &#xff08;支持手机和电脑浏览器&#xff09; 开发工具&#xff1a;https://www.dcloud.io/hbuilderx.htm…

MUI(最接近原生APP体验的高性能前端框架)

MUI-最接近原生APP体验的高性能前端框架MUI: 最接近原生APP体验的高性能前端框架https://dev.dcloud.net.cn/mui/ 最接近原生APP体验的高性能前端框架&#xff0c;追求性能体验&#xff0c;是我们开始启动MUI项目的首要目标&#xff0c;轻量必然是重要特征。 MUI不依赖任何第…

关于MUI一个很实用的前端框架

今天也是我接触mui的第一天。首先先上MUI的官网上面瞧一瞧。http://dev.dcloud.net.cn/mui/window/#closewindow我这里上的不是官网&#xff0c; 我是先把他的基本能实现的功能先做了一个简单的了解。下面大家跟着我看&#xff1a; 一、Mui的组件 mui的组件都很原生比如拓展阅读…

MUI框架快速开发

文章目录 创建项目快速编写标题页面主体底部选项卡常用关键词 字体图标事件处理常见手势事件 窗口对象底部选项卡-页面切换底部选项卡窗口对象设置点击事件处理 栅格系统页面传值通过openWindow通过自定义事件 常用关键词参考 创建项目 使用MUI框架搭建项目&#xff0c;首先我…

MUI框架学习——了解MUI

MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架官方文档&#xff1a;http://dev.dcloud.net.cn/mui/ui/ &#xff08;1&#xff09;MUI 介绍 MUI 是什么&#xff0c;解决了什么问题&#xff1f;MUI 官方号称最接近原生APP体验的高性能前端框架简单的说就是webap…

mui框架

1 MUI介绍 1.1 MUI是什么&#xff0c;解决了什么问题。 &#xff08;1&#xff09;性能和体验的差距&#xff0c;一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、无法流畅下拉刷新等问题&#xff0c;这些都让HTML5…

MUI框架初级教程

写在前面 本系列文章我们将利用mui基于网易云音乐API实现一个音乐播放器APP&#xff0c;同时基于环形或者融云实现聊天功能。作为本系列文章的第一篇&#xff0c;本文会详细讲解html5中管理应用窗口界面的Webview模块的用法&#xff0c;因为是初级教程篇不过多讲解原理部分&…

MUI框架的基本使用

要使用MUI框架&#xff0c;在Hbuilder中必须新建HTML5 APP&#xff0c;并且创建MUI项目&#xff0c;Hbuilder会自动生成代码 MUI页面的使用&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta name"viewport&…

MUI框架开发APP详解,一篇就够了

MUI框架开发APP详解&#xff0c;一篇就够了 1.MUI简介2.下载安装hbuilderx3.新建一个5app项目4.制作首页首页头部首页主体 5.制作底部选项卡6.H5plus使用设置页面样式蜂鸣 7.app打包发布基础配置图标配置发行 1.MUI简介 最接近原生APP体验的高性能前端框架 追求性能体验&…

Flask第五天-Mui+HTML5PLUS介绍、APP开发环境、MUI+HMTL5PLUS登录页面、Mui.post实现post请求、Mui.fire

一、MUI框架&#xff08;前端UI框架&#xff09; &#xff08;一&#xff09;MUI框架简介及优劣势分析&#xff1a; 1.MUI基本介绍及优劣势分析 MUI是一套前端框架&#xff0c;由DCLOUD公司研发而成&#xff0c;提供大量H5和js语言组成的组件&#xff0c;大大提高了开发效率&…

Eclipse修改字体大小

字体调整大小1.打开eclipse&#xff0c;点击“window” 2.在下拉菜单中展开找到“preferences”&#xff0c;在左边菜单中点击“general”&#xff0c;找到后展开“appearance”。 3.选择“colors and fonts”。 4.找到basic&#xff0c;点击Text Font&#xff0c;双击鼠标右…

eclipse字体大小设置

eclipse字体大小设置 ①点击菜单上的Window窗口 ②点击Preferences选项 ③General→Appearance→Colors and Fonts ④选中Text Font ⑤点击Edit ⑥更改字体大小

修改Eclipse字体以及背景颜色

操作界面默认颜色为白色。对于我们长期使用电脑编程的人来说&#xff0c;白色很刺激我们的眼睛&#xff0c;所以我经常会改变workspace的背景色&#xff0c;使眼睛舒服一些。设置方法如下&#xff1a; 1、打开window->Preference,弹出Preference面板 2、展开General标签&a…

eclipse 快捷调整字体_eclipse字体大小设置快捷键

原标题:"win10系统如何更改Eclipse字体大小"关于电脑问题教程分享。 - 来源:191路由网 - 编辑:小元。 因为编辑需要,不少朋友都会在windows10系统电脑中安装Eclipse英文版软件,用户对于代码的应用应该是没有问题的,可在英文版Eclipse设置字体小大却是两眼一抹黑,…

Eclipse字体颜色控制

注:以下为转载,觉得写的很全,只为方便自己查看,或他人查看 因为eclipse字体颜色默认的我们看久了会觉得有点眼睛不舒服&#xff0c;特别是在晚上&#xff0c;太亮了&#xff0c;我觉得eclipse的白色背景太刺眼了看着不舒服 此时我们就希望设置一下字体eclipse字体颜色&#xf…