版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《HTML5网页前端设计》教案第13章前端框架实战·基于Vue3.x的秒表程序的设计与实现一、教学目标:了解前端框架的概念;了解基础前端框架jQuery和Bootstrap;了解高级前端框架Vue、React和Angular;掌握Vue3框架的CDN引用;掌握Vue3创建和挂载应用的方法;掌握Vue3数据动态绑定和事件处理的方法。二、教学重点和难点:重点:了解前端框架及高级前端框架Vue;难点:Vue3数据动态绑定和事件处理的方法。三、教学方法与手段:采取互动式教学方法,理论教学使用多媒体投影教室。四、课程简介:当学习了Web前端开发的基础知识和各类API以后,可以进一步了解前端框架的概念。本章介绍了基础前端框架jQuery和Bootstrap,以及高级前端框架Vue、React和Angular。并以Vue3为例介绍其引用和基础开发语法,完成了第一个Vue3应用和综合实战应用——基于Vue3的简易秒表的设计与实现。开发者可以在学完本书后进一步选择前端框架的专业书进行学习。五、教学基本内容:13.1前端框架简介13.1.1什么是前端框架前端框架这一概念最早是在建筑学领域被提及,它指的是一种可复用的设计构建。在Web开发领域,前端框架指的是一种基于HTML、CSS、JavaScript技术封装的工具套件,用于帮助开发者提高开发效率,快速搭建出Web页面和相关的交互事件。前端框架一般会事先封装好一些美观的UI组件(例如按钮、图标、下拉菜单等)或交互功能(例如元素隐藏/显示、动画效果、地址路由等),开发者无需从零开始编写繁琐的代码,直接通过调用的方式就可以快速复用前端框架内自带的组件和功能。掌握好前端框架,不仅可以大幅度降低开发周期也可以提高页面美观性。13.1.2基础前端框架jQuery和Bootstrap是建议开发者可以了解和学习的轻量级基础前端框架,前者是网络上使用最广泛的函数库,后者是全球最受欢迎的前端组件库之一。1.jQueryjQuery这个名称来源于JavaScript和Query(查询)的组合,是一个轻量级的跨平台JavaScript函数库,拥有MIT软件许可协议。目前主流浏览器基本上都支持jQuery。jQuery秉承“writeless,domore(写的更少,做的更多)”的核心理念,其语法能用让用户更方便地选取和操作HTML元素、处理各类事件、实现JavaScript特效与动画,并且能为不同类型的浏览器提供更便捷的API用于AJAX交互。jQuery也能让开发者基于JavaScript函数库开发新的插件。jQuery通用性和可扩展性相结合,它的出现将改变人们对JavaScript的使用方式。现如今jQuery仍然是网络上使用范围最广泛的JavaScript函数库之一。根据Builtwith(注:一款用于统计流行网站使用的构建技术和编程语言的工具)的最新统计数据得出结论,目前流量排名最高的百万个网页中超过70%都在使用jQuery,其中国内比较著名的网站有:CCTV、新浪、搜狗、爱奇艺、豆瓣、CSDN、bilibili、支付宝等。2.BootstrapBootstrap是全球最受欢迎的前端组件库之一,适合用于开发响应式布局的Web项目,在移动设备端能带来更好的体验。其核心优势是响应式网格系统,在无需刷新页面的前提下动态变化布局排版以便自适应当前设备尺寸的效果。除此之外Bootstrap还封装了相当丰富的UI组件,例如表格、按钮、徽章、进度条、加载效果、分页、列表、卡片、下拉菜单、折叠、导航、轮播、消息弹窗、提示框、表单等,这些组件风格统一、简洁优雅,能快速提高开发者的页面美观性。13.1.3高级前端框架如果希望掌握更高级的前端项目开发技能,可以进阶学习高级前端框架技术。高级前端框架具备更加丰富的内置功能和工具,其组件化和代码复用机制能够有效提高开发效率,减少代码冗余现象和节约维护成本。根据目前国内外的前端开发流行趋势来看,Vue、React和Angular被称为三大主流前端框架。1.VueVue的发音类似于英文单词view,是中国开发者尤雨溪在2014年创建的一款用于高效、灵活构建用户界面的JavaScript框架。它基于HTML、CSS和JavaScript标准语法开发,并提供了一套声明式的、组件化的编程模型。其特色是可以用于搭建SPA(全称为SinglePageApplication,单页面应用程序)和复杂的用户界面。由于Vue是我国开发者创建的,因此在国内比另外这两个前端框架更受开发者青睐,具有更广泛的国内用户群体和大量的中文文档以及中文社区资源,国内开发者更够更有效地学习该框架。目前使用Vue开发的项目有:阿里巴巴、小米、饿了么、哔哩哔哩等。2.ReactReact最初是由Facebook公司创建,在UI组件搭建方面具有更高的灵活性。该框架将原先的整体UI拆分为不同的组件,每个组件都设置了自己的状态和功能方法。就像可自由组合拼接的乐高积木一样,开发者可以根据实际需要拼接、拆卸UI组件来快速搭建Web应用,从而提高前端开发效率。React使用JSX作为开发语言,该语言是HTML和JavaScript的混合模式。React在全球范围内占有的市场份额较多,因此也具有庞大的社区支持,包含很多文档、教程和工具。目前使用React开发的项目有:Instagram、Netflix、Uber官网等。3.AngularAngular诞生于2010年,第一版是由Google工程师MiskoHevery创建的,后被Google公司收购,成为其官方的前端开发框架,并转由Google开发团队进行维护和推广。Angular基于TypeScript语言开发,具有更好的类型安全性。其内部包含丰富的功能和工具,包括模板语法、表单验证、依赖注入等,开发者可以使用对应的模块来更高效地构建复杂的Web项目。该框架学习成本较高,更适用于大型项目,例如数据可视化应用、大规模复杂的应用项目、桌面应用程序等。目前使用Angular开发的项目有:NBA官网、Gmail邮箱、MicrosoftDynamics365等。13.2Vue3入门Vue3指的是Vue的第三版,也是目前的最新版。之前的Vue2已经于2023年12月31日停止维护。本章将以Vue3为例,展示如何使用高级前端框架进行Web项目的入门开发。13.2.1Vue3的安装Vue3有两种安装方式,开发者可以根据自己的实际情况任选一种。1. 方法一:通过CDN引用开发者可以在网页文件中使用<script>标签来引用Vue3的CDN地址。以下是目前测试可用的CDN地址,开发者可以从中任选其一:字节跳动CDN:/cdn/expire-1-M/vue/3.2.31/vue.global.min.jsstaticfileCDN:/vue/3.0.5/vue.global.jsunpkgCDN:/vue@3/dist/vue.global.js以unpkgCDN为例,在网页文件中的引用示例代码如下:<scriptsrc="/vue@3/dist/vue.global.js"></script>注:如果担心网络波动等原因,也可以将文件下载到本地后进行引用,效果完全一样。例如本地目录为js,在网页文件中的引用示例代码如下:<scriptsrc="js/vue.global.js"></script>其中vue.global.js文件的名称可自行修改。2. 方法二:通过npm或yarn安装目前已经支持使用npm或yarn命令安装官方的vue手脚架,语法如下:#通过npm安装npmcreatevue@latest#通过yarn安装yarncreatevue@latest后续还需要录入项目名称,然后选一些配置选项来完成项目创建。由于本章旨在Vue3入门学习,这里不推荐初学者使用命令行工具来创建项目,因此不再开展详细描述。下一节将直接在网页页面引入vue.global.js文件来进行简单的测试学习。13.2.2第一个基于Vue3的应用1. 创建项目结构创建自定义名称的项目文件夹firstVueDemo,其内部创建子目录js用于存放文件vue.global.js(通过CDN下载到本地),并新建index.html作为入口文件。index.html文件的初始代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>4. <metacharset="utf-8">5. <title>我的第一个Vue项目</title>6. <scriptsrc="js/vue.global.js"></script>7. </head>8. <body>9. </body>10. </html>其中第5行的标题名称可以自定义;第6行是对vue.global.js文件的引用声明。2. 编写段落文字在index.html的<body>与</body>标签之间声明一个<div>组件,并为其定义id属性,属性值可自定义,一般可以声明为id="app"表示Vue3框架开发的最外层容器。在<div>容器内使用段落元素<p>补充一些问候语,参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>4. <metacharset="utf-8">5. <title>我的第一个Vue项目</title>6. <scriptsrc="js/vue.global.js"></script>7. </head>8. <body>9. <divid="app">10. <p>HelloWorld!</p>11. </div>12. </body>13. </html>在浏览器中访问该网页文件,此时就是一个普通网页,实际尚未用到Vue3的相关功能。下一节我们将对该页面进行Vue框架改造,使其成为一个基于Vue3的应用页面。3. Vue框架应用1)创建和挂载应用Vue3中使用createApp函数来创建应用,其语法格式如下:constapp=Vue.createApp({/*选项*/})修改index.html文件,追加<script>标签进行创建应用声明,代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">…内容略…</div>6. <script>7. constapp=Vue.createApp({})8. </script>9. </body>10. </html>Vue3中使用mount函数来挂载应用到页面模块上,其语法格式如下:app.mount('#app')其中#app指的是通过ID选择器找到网页上id="app"的组件,并将应用挂在到其中。修改index.html文件,追加挂载应用语句,代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">…内容略…</div>6. <script>7. constapp=Vue.createApp({})8. app.mount("#app")9. </script>10. </body>11. </html>此时应用就挂载好了,下一节将介绍Vue3的模板语法——数据动态绑定。2)数据动态绑定Vue3使用基于HTML的模板语法将数据实例绑定到组件上,使得用JavaScript操作数据时页面显示的内容可以动态变化。最基础的一种数据绑定形式叫做文本插值,在HTML文档中的静态文本可以改写成{{变量名}}的形式表示动态数据,例如:<p>{{msg}}</p>此时页面上不会显示msg这个词,而是会显示这个变量对应的值。需要声明的变量可以继续写到createApp函数内部,放在data()方法中。data()方法中允许包含一个或多个动态变量,其语法结构如下:1. constapp=Vue.createApp({2. data(){3. return{4. 变量1:值1,变量2:值2,…变量N:值N5. }6. }7. })将index.html中的段落组件内的问候语句换成变量{{msg}},并在createApp函数的data()方法中补充对应的变量声明,修改后的代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <p>{{msg}}</p>7. </div>8. <script>9. constapp=Vue.createApp({10. data(){11. return{12. msg:"HelloVue!"//取值可自定义13. }14. }15. })16. app.mount("#app") 17. </script>18. </body>19. </html>在浏览器中访问该网页文件,此时虽然页面上看到同样的文字,但是已经变成动态渲染的结果了。开发者可以试着修改data()中的msg取值,保存后重新预览看页面是否发生变化。3)事件处理在Vue3中使用v-on指令来监听DOM事件,该指令也可以缩写为@符号。例如监听按钮的click单击事件,写法如下:<buttonv-on:click="methodName">按钮</button>或<button@click="methodName">按钮</button>以上两种写法均可,其中methodName可以换成需要执行的自定义函数名称。自定义函数的具体内容可以继续写到createApp()函数内部,放在methods属性中。methods属性中允许包含一个或多个函数,其语法结构如下:1. constapp=Vue.createApp({2. data(){…内容略…},3. methods:{4. 自定义函数1(){…内容待补充…},5. 自定义函数2(){…内容待补充…},6. …7. 自定义函数N(){…内容待补充…}8. }9. })不妨尝试修改index.html文件,追加带有监听click事件的按钮,当单击按钮时让问候文字发生变化,参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <p>{{msg}}</p>7. <button@click="greeting">ClickMe</button>8. </div>9. <script>10. constapp=Vue.createApp({11. data(){12. return{13. msg:"HelloVue!"//初始值14. }15. },16. methods:{17. greeting(){18. this.msg="HelloVue3!"//变更值19. }20. }21. })22. app.mount("#app")23. </script>24. </body>25. </html>重新预览页面,原先显示的问候语是“HelloVue!”,单击按钮后显示的问候语就变成了“HelloVue3!”,说明按钮事件处理成功生效。此时就完成了一个最基础的Vue3项目,这种通过data()方法和methods属性的声明方式被称为Vue的选项式API。4)代码重构在Vue3中还有一种组合式API,这种方式更适合单页面应用。变量与函数的声明可以更加灵活。修改后的index.html代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">…内容略…</div>6. <script>7. const{createApp,ref}=Vue8. createApp({9. setup(){10. constmsg=ref("HelloVue!");11. constgreeting=()=>{12. msg.value="HelloVue3!";13. }14. return{15. msg,16. greeting17. }18. }19. }).mount("#app")20. </script>21. </body>22. </html>上述代码修改的内容总结如下:声明createApp和ref函数,后续使用时不再需要加Vue.前缀;去掉data()和methods属性,改成统一的setup()函数,将变量和函数都在其中声明;需要在页面上被调用的变量/函数都可以用const来进行声明,并统一在setup()函数的末尾return中登记;其他内部变量/函数可以用let或var声明,且无需写到return内。需要渲染在页面上的变量用ref()声明取值,用变量名.value修改值。直接用方法链把mount函数挂载到createApp函数后面。下一节将进入实战开发环节,基于Vue3制作一个简易秒表程序。13.3基于Vue3的简易秒表的设计与实现13.3.1创建项目结构创建自定义名称的项目文件夹stopwatchDemo,其内部创建子目录css和js,分别用于存放样式文件style.css(自行新建)和vue3文件vue.global.js(通过CDN下载到本地),index.html文件的初始代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>4. <metacharset="utf-8">5. <title>基于Vue3的简易秒表的设计与实现</title>6. <linkrel="stylesheet"href="css/style.css"/>7. <scriptsrc="js/vue.global.js"></script>8. </head>9. <body>10. </body>11. </html>其中第5行的标题名称可以自定义;第6、7行分别是对样式文件style.css和vue.global.js文件的引用声明。13.3.2页面设计1. 整体布局设计计划制作一个卡片式的应用,卡片内分为上下结构:上面是时间展示区域,用于显示当前秒表的读数文本;下面是按钮区域,用于显示复位、启动和停止按钮,其中左侧是复位按钮,右侧是启动/停止按钮彼此切换显示。修改index.html,声明根容器<divid="app">,并在其中声明两个<div>子容器,其中class取值分别为timeBox和btnBox用于表示时间展示区域和按钮区域。参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>4. <metacharset="utf-8">5. <title>基于Vue3的简易秒表的设计与实现</title>6. <linkrel="stylesheet"href="css/style.css"/>7. <scriptsrc="js/vue.global.js"></script>8. </head>9. <body>10. <divid="app">11. <!--时间展示区域-->12. <divclass="timeBox"></div>13. <!--按钮区域-->14. <divclass="btnBox"></div>15. </div>16. </body>17. </html>然后在style.css文件中声明容器样式,参考代码如下:1. /*根容器样式*/2. #app{3. width:300px;/*宽*/4. height:300px;/*高*/5. margin:20pxauto;/*外边距上下20px,水平方向居中*/6. padding:20px;/*内边距四个边均为20px*/7. background-color:#333;/*背景颜色*/8. display:flex;/*弹性布局*/9. flex-direction:column;/*垂直布局*/10. justify-content:space-around;/*垂直方向上均匀布局,两头的距离是中间的一半*/11. }然后继续补充时间展示区域和按钮区域的样式,css代码如下:1. /*时间展示区域*/2. .timeBox{3. width:100%;/*宽*/4. height:60px;/*高*/5. border:1pxsolidred;/*临时:1px红色边框*/6. }7. /*按钮区域*/8. .btnBox{9. width:100%;/*宽*/10. height:80px;/*高*/11. border:1pxsolidred;/*临时:1px红色边框*/12. }为了方便观看两个子区域所在位置,这里第5、11行均使用border属性为其临时添加了1px粗细的实线红色边框,全部做完后可以去掉此行代码。此时可预览页面。2. 时间展示区域设计在index.html中临时添加秒表数据,参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <!--时间展示区域-->7. <divclass="timeBox">00:00.00</div>8. <!--按钮区域-->9. <divclass="btnBox"></div>10. </div>11. </body>12. </html>这里临时用“00:00.00”表示0分0.00秒,小数点后精确到0.01秒。在style.css中补充时间展示区域的样式,主要是设置字体大小和颜色,参考代码如下:1. /*时间展示区域*/2. .timeBox{3. width:100%;/*宽*/4. height:60px;/*高*/5. border:1pxsolidred;/*临时:1px红色边框*/6. color:white;/*文本颜色*/7. font-size:40px;/*字体大小*/8. text-align:center;/*水平方向居中*/9. }此时可预览页面。3. 按钮区域设计在index.html中添加按钮,参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <!--时间展示区域-->7. <divclass="timeBox">00:00.00</div>8. <!--按钮区域-->9. <divclass="btnBox">10. <!--左边按钮-->11. <button>复位</button>12. <!--右边按钮-->13. <buttonclass="greenBtn">启动</button>14. <!--<buttonclass="redBtn">停止</button>-->15. </div>16. </div>17. </body>18. </html>按钮需要一左一右显示,左边是“复位”按钮,右边是“启动”按钮和“停止”按钮二选一显示(页面初始显示“启动”按钮,单击“启动”按钮后秒表开始计时,此时显示“停止”按钮)。因此暂时注释掉“停止”按钮相关代码,先看页面初始效果。这里为右边两个按钮设置class属性分别为greenBtn和redBtn,后续将在css代码中补充为绿色主题和红色主题按钮样式。在style.css的按钮区域样式中补充弹性布局样式,参考代码如下:1. /*按钮区域*/2. .btnBox{3. width:100%;/*宽*/4. height:80px;/*高*/5. border:1pxsolidred;/*临时:1px红色边框*/6. display:flex;/*弹性布局(默认水平布局)*/7. justify-content:space-between; /*两端对齐*/8. }在style.css中补充按钮的通用样式,参考代码如下:1. /*按钮通用样式*/2. button{3. width:80px;/*宽*/4. height:80px;/*高*/5. border:none;/*去掉边框*/6. border-radius:50%;/*圆角边框*/7. cursor:pointer;/*鼠标为手状指针*/8. font-size:20px;/*字体大小*/9. }在style.css中继续补充绿、红主题颜色按钮样式,参考代码如下:1. /*绿色主题按钮*/2. .greenBtn{3. background-color:lightgreen;/*背景颜色浅绿*/4. color:darkgreen;/*文本颜色深绿*/5. }6. /*红色主题按钮*/7. .redBtn{8. background-color:pink;/*背景颜色粉红*/9. color:darkred;/*文本颜色深红*/10. }此时样式代码就已经全部完成,可以把时间展示区域和按钮区域样式中的border属性全部去掉了。预览页面效果时由于需要考虑两种状态,可以分别注释掉“停止”按钮和“启动”按钮的相关HTML代码,每次只预览其中一个按钮的页面效果。接下来就可以进行逻辑实现了,我们将使用Vue3框架应用来快速实现动态效果。13.3.3逻辑实现1. 创建和挂载应用修改index.html文件,追加<script>标签并在其中创建和挂载Vue3应用,代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">…内容略…</div>6. <script>7. const{createApp,ref}=Vue8. createApp({9. setup(){10. //待补充11. }12. }).mount("#app")13. </script>14. </body>15. </html>这里我们使用setup()方法使代码更为简洁,等待后续补充变量和函数。2. 动态绑定数据修改index.html文件,在createApp()函数中初始化一些变量值,参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">…内容略…</div>6. <script>7. const{createApp,ref}=Vue8. createApp({9. setup(){10. //声明变量11. constformatTime=ref('00:00.00');//初始化时间展示12. constisStart=ref(false);//秒表是否已启动13. letcount=0;//当前时间统计(每0.01秒+1)14. lettimer=null;//JavaScript计时器15. 16. return{17. //变量18. formatTime,19. isStart20. }21. }22. }).mount("#app")23. </script>24. </body>25. </html>这里只有formatTime和isStart变量需要动态绑定到页面上,因此使用const和ref()来进行声明,并放在了return内部;其余两个变量count和timer只需在<script>内部辅助使用,使用let或者var声明即可。修改HTML中的时间展示区域,将其中的时间数据"00:00.00"换成变量{{formatTime}};修改按钮区域中右侧两个按钮组件,使用v-if和v-else属性使它们根据秒表启动状态变量isStart的取值只显示其中一个。index.html代码修改如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <!--时间展示区域-->7. <divclass="timeBox">{{formatTime}}</div>8. <!--按钮区域-->9. <divclass="btnBox">10. <!--左边按钮(…内容略…)-->11. <!--右边按钮-->12. <buttonv-if="!isStart"class="greenBtn">启动</button>13. <buttonv-elseclass="redBtn">停止</button>14. </div>15. </div>16. <script>…内容略…</script>17. </body>18. </html>此时预览应该还是和原先效果相同,但实际上数据已经转化为动态渲染了。3. 启动/停止按钮事件修改index.html代码,为右边的启动/停止按钮添加click监听事件,分别触发自定义函数start和stop。参考代码如下:1. <!DOCTYPEhtml>2. <html>3. <head>…内容略…</head>4. <body>5. <divid="app">6. <!--时间展示区域(…内容略…)-->7. <!--按钮区域-->8. <divclass="btnBox">9. <!--左边按钮(…内容略…)-->10. <!--右边按钮-->11. <buttonv-if="!isStart"class="greenBtn"@click="start">启动</button>12. <buttonv-elseclass="redBtn"@click="stop">停止</button>13. </div> 14. </div>15. <script>16. const{createApp,ref}=Vue17. createApp({18. setup(){19. //声明变量(…内容略…)20. //启动按钮事件21. conststart=()=>{22. isStart.value=true;//秒表已启动23. //每隔0.01秒(10毫秒)执行一次24. timer=setInterval(()=>{25. count++;//每次计数器+126. letm=Math.floor(count/100/60);//计算分27. lets=Math.floor(count/100-m*60); //计算秒28. letms=count%100;//计算秒的2位小数29. //如果数字是个位数,十位补030. if(m<10)m="0"+m;31. if(s<10)s="0"+s;32. if(ms<10)ms="0"+ms;33. //更新页面显示时间34. format
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大三(会展经济与管理)会展场馆运营管理期末试题
- 大学(医学影像技术)医学影像设备2026年阶段测试题及答案
- 2025年大学生活中的物理学(相对论基础解析)试题及答案
- 2025年中职计算机动漫与游戏制作(动漫制作基础)试题及答案
- 2025年大学(全球健康学)全球卫生治理阶段测试题及解析
- 高职第一学年(计算机网络技术)网络配置与维护2026年综合测试题及答案
- 深度解析(2026)《GBT 18268.21-2010测量、控制和实验室用的电设备 电磁兼容性要求 第21部分:特殊要求 无电磁兼容防护场合用敏感性试验和测量设备的试验配置、工作条件和性能判据》
- 深度解析(2026)《GBT 17980.136-2004农药 田间药效试验准则(二) 第136部分烟草抑芽剂试验》
- 深度解析(2026)《GBT 17800.1-19998 mm磁带螺旋扫描盒式录像系统(8 mm录像) 第1部分总规范》
- 深度解析(2026)《GBT 6546-2021瓦楞纸板 边压强度的测定》
- 2023年武汉大学城市规划考研真题
- 中考语文二轮复习《文言文断句》课件
- 人教版高中地理必修一第二章《地球上大气》单元检测试题
- 食品配送应急处突保障全新预案
- 我为班级添光彩-主题教育课程主题班会
- PICC导管相关血流感染课件
- 气烧石灰窑热工计算
- DBJ∕T45-093-2019 混凝土超高泵送施工技术规程
- 夹点技术与换热网络优化综合
- 部编版九年级历史(上)全册教案
- 简约立警为公执法为民模板
评论
0/150
提交评论