小程序入门笔记(一) 黑马程序员前端微信小程序开发教程

微信小程序基本介绍

在这里插入图片描述
小程序和普通网页有以下几点区别:

  1. 运行环境:小程序可以在手机的操作系统上直接运行,如微信、支付宝等;而普通网页需要在浏览器中打开才能运行。

  2. 开发技术:小程序采用前端技术进行开发,如HTML、CSS、JavaScript等;而普通网页也是使用类似的前端技术开发。

  3. 用户体验:小程序可以提供更加原生化的用户体验,可以调用手机硬件设备的功能,如摄像头、地理位置等;而普通网页对于这些功能的调用相对受限。

  4. 安全性:小程序运行在封闭的环境中,安全性较高,并且需要通过平台审核后才能上线;而普通网页的安全性相对较低,容易受到网络攻击。

  5. 分发方式:小程序可以通过应用商店进行分发,用户可以方便地搜索、下载和更新;而普通网页需要通过链接分享或搜索引擎搜索才能找到。

  6. 权限控制:小程序可以对用户的权限进行细粒度的控制,例如获取用户的地理位置、访问手机相册等;而普通网页由于运行在浏览器中,权限受到限制,无法进行这些操作。

  7. 存储能力:小程序可以在本地存储数据,包括用户的配置、缓存等;而普通网页通常只能通过cookie或localStorage等方式进行有限的本地存储。

  8. 跨平台支持:小程序可以同时支持多个操作系统,如iOS和Android;而普通网页几乎可以在任何现代浏览器上运行,跨平台性更强。

  9. 更新机制:小程序在更新时,用户无需手动下载,平台会自动推送最新版本给用户;而普通网页需要用户手动刷新页面才能获取到更新。

  10. 开发限制:小程序的开发受到平台的严格限制,需要符合一定的规范和要求,并且功能受到一定的限制;而普通网页的开发相对自由度较高。

在这里插入图片描述

在这里插入图片描述
要创建第一个微信小程序,可以按照以下步骤进行:

  1. 注册成为微信公众平台开发者:访问微信公众平台(mp.weixin.qq.com),使用个人微信账号注册成为开发者。

  2. 创建小程序:登录微信公众平台后,在菜单中选择"开发",然后点击"小程序",进入小程序管理页面。点击"添加小程序"按钮,填写小程序的基本信息,包括名称、AppID、简介等,并上传小程序的图标和封面图片。

  3. 完善小程序设置:在小程序管理页面中,可以设置小程序的基本配置项,包括设置服务器域名、业务域名、支付配置等。

  4. 开发工具下载:下载微信开发者工具,用于小程序的开发和调试。微信开发者工具可以在微信公众平台的"开发"->"开发工具"中下载。

  5. 创建小程序项目:打开微信开发者工具,点击"新建小程序项目",填写小程序的AppID和项目目录,点击"确定"后即可创建小程序项目。

  6. 开发小程序页面:在微信开发者工具中,可以编写小程序的页面代码、样式和逻辑,通过预览功能可以实时查看小程序的效果。

  7. 发布小程序:完成小程序的开发后,可以在微信开发者工具中点击"上传"按钮,将小程序上传到微信公众平台进行审核。审核通过后,即可发布小程序供用户使用。

当创建了小程序项目后,可以按照以下示例代码进行开发:

  1. 在小程序项目的根目录下,找到app.json文件,在其中配置小程序的全局配置信息,如页面路径、窗口样式等。

示例app.json文件内容:

{"pages": ["pages/index/index",        // 小程序首页"pages/about/about",        // 关于页面"pages/contact/contact"     // 联系页面],"window": {"navigationBarTitleText": "我的小程序",  // 导航栏标题文字"navigationBarBackgroundColor": "#ffffff"  // 导航栏背景颜色},"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/about/about","text": "关于"}]}
}
  1. 创建小程序的页面文件,每个页面对应一个文件夹,包含一个.js.wxml.wxss.json文件。

示例index.js文件内容:

Page({data: {message: 'Hello, 小程序!'},onLoad() {console.log('页面加载完成')},onTap() {this.setData({message: '点击了按钮'})}
})

示例index.wxml文件内容:

<view><text>{{ message }}</text><button bindtap="onTap">点击我</button>
</view>

示例index.wxss文件内容:

text {font-size: 16px;color: #333333;
}button {margin-top: 20px;padding: 10px 20px;background-color: #007bff;color: #ffffff;
}

示例index.json文件内容(可选,用于配置页面特殊样式):

{"navigationBarTitleText": "首页",  // 页面标题"enablePullDownRefresh": true  // 允许下拉刷新功能
}

以上代码示例演示了一个简单的小程序页面,其中包含一个文本框、一个按钮,点击按钮后会改变文本框的内容。

通过以上示例,可以开始进行小程序的开发和调试。在微信开发者工具中点击预览按钮,即可在模拟器中查看和测试小程序的效果。

在这里插入图片描述

小程序组成结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

JSON配置文件

在微信小程序开发中,JSON配置文件是一种用于配置小程序运行环境的文件格式。小程序中常见的JSON配置文件有app.json、page.json、component.json等。

其中,app.json是小程序的全局配置文件,包含了所有页面的路径、窗口样式、网络配置等。其他JSON配置文件则用于指定具体页面或组件的特殊样式和行为。

下面以app.json为例,介绍一些常见的配置选项:

{"pages": ["pages/index/index","pages/logs/logs"],"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "小程序示例","navigationBarTextStyle": "black"}
}

其中,pages属性指定小程序包含的页面路径列表,这里可能会有多个页面,每个页面需要对应一个.js.wxml.wxss.json文件。

window属性用于指定小程序窗口的样式和配置选项。例如,navigationBarTitleText属性指定导航栏标题文字,navigationBarBackgroundColor属性指定导航栏背景颜色,backgroundTextStyle属性指定下拉动画的样式等。

app.json文件还可以指定小程序的网络配置、分享配置、调试模式等选项。详情可参考微信小程序文档。

JSON配置文件是微信小程序开发中重要的一部分,通过配置文件,可以实现小程序的全局配置、页面配置和组件配置等特性。

在这里插入图片描述
app.json
在微信小程序中,app.json是小程序的全局配置文件,用于指定小程序的全局属性和页面路径等信息。

下面介绍一些常见的app.json配置选项:

  1. pages:用于指定小程序包含的所有页面路径列表,每个页面对应一个.js.wxml.wxss.json文件。页面路径是相对于小程序根目录的路径,例如:"pages/index/index"表示根目录下的pages目录中的index页面。

  2. window:用于指定小程序窗口的样式和配置选项,例如navigationBarTitleText属性指定导航栏标题文字,navigationBarBackgroundColor属性指定导航栏背景颜色,backgroundTextStyle属性指定下拉动画的样式等。

  3. tabBar:用于指定小程序底部的选项卡栏,包括选项卡的图标、标题、页面路径等。每个选项卡对应一个页面,用户可以通过点击选项卡切换页面。

  4. networkTimeout:用于指定小程序的网络请求超时时间,单位为毫秒。

  5. debug:用于指定小程序的调试模式,默认为false,开启后会输出更多的调试信息。

  6. permission:用于指定小程序需要使用的系统权限,例如地理位置、摄像头、麦克风等。

以上只是常见的一些配置选项,具体的配置选项可以参考微信小程序文档。

总之,app.json是微信小程序开发中重要的一部分,通过配置app.json文件,可以指定小程序全局属性和页面路径等信息,从而实现小程序的全局配置。

在这里插入图片描述

project.config.json
project.config.json是微信小程序项目配置文件,它存储了开发者工具中的一些项目配置信息。这个文件通常位于小程序项目的根目录下。

下面介绍一些常见的project.config.json配置选项:

  1. appid:用于指定小程序的 AppID,即小程序的唯一标识。在创建小程序时会自动生成一个唯一的 AppID。

  2. projectname:用于指定小程序的项目名称。

  3. description:用于指定小程序的描述信息。

  4. compileType:用于指定小程序的编译类型,可以是"miniprogram"(小程序)或"plugin"(插件)。

  5. setting:用于指定开发者工具的一些设置选项,如是否自动打开调试工具、是否生成压缩包等。

  6. packOptions:用于指定小程序打包的一些配置选项,如是否生成 sourcemap 文件、是否对图片进行压缩等。

  7. minGameVersion:用于指定小游戏适配库的最低版本号。

以上只是常见的一些配置选项,实际上project.config.json还可以包含其他的配置选项,具体可参考微信小程序文档。

总之,project.config.json是微信小程序开发中的项目配置文件,通过配置该文件可以设定小程序的一些基本信息和开发工具的行为。
在这里插入图片描述
sitemap.json
sitemap.json文件是微信小程序的“小程序搜索”的配置文件,用于向微信服务器提交小程序的页面路径、页面标题、页面参数等信息,以便微信可以将小程序的内容展示在搜索结果中。

sitemap.json文件通常位于小程序项目根目录下,其主要配置选项包括:

  1. rules:用于指定小程序页面的规则。每个规则包含一个name字段和一个page字段,其中name表示页面名称,page表示页面路径。可以使用通配符()指定多个页面,例如"pages/"表示所有的页面均符合该规则。

  2. path:用于指定小程序的首页路径。

  3. items:用于指定小程序的其他页面路径、标题、参数等信息。

  4. recursion:用于指定是否递归查找子页面,默认为false。

以上是sitemap.json文件的一些常见配置选项,具体的配置方式可以参考微信小程序文档。

通过配置sitemap.json文件,可以让微信搜索能够更好地展示小程序的内容,并提高小程序的曝光度和流量。

在这里插入图片描述
在微信小程序中,每个页面都需要对应一个.json配置文件,该文件用于指定该页面的一些配置选项和数据。

下面介绍一些常见的.json配置选项:

  1. usingComponents:用于引用该页面所需的自定义组件。可以使用相对路径或绝对路径指定组件所在的位置,例如:“usingComponents”:{“my-component”:"/components/my-component/my-component}"表示引用了一个名为"my-component"的自定义组件。

  2. navigationBarTitleText:用于指定导航栏标题文字。

  3. navigationBarBackgroundColor:用于指定导航栏背景颜色。

  4. backgroundTextStyle:用于指定下拉动画的样式,包括dark(黑色)和light(白色)两种。

  5. backgroundColor:用于指定页面背景颜色。

  6. enablePullDownRefresh:用于指定是否开启下拉刷新功能,默认值为false。

  7. disableScroll:用于指定是否禁止页面滚动,默认值为false。

以上是一些常见的.json配置选项,具体的配置方式可以参考微信小程序文档。

好的,下面给出一个具体例子,假设有个名为“index”的主页页面,那么它对应的.json配置文件可能如下所示:

{"navigationBarTitleText": "首页", "navigationBarBackgroundColor": "#ffffff", "usingComponents": {"my-component": "/components/my-component/my-component"},"enablePullDownRefresh": true,"backgroundTextStyle": "dark","disableScroll": false
}

在上述示例中,.json配置文件指定了以下一些属性和配置选项:

  1. navigationBarTitleText: 导航栏标题文字为“首页”;
  2. navigationBarBackgroundColor: 导航栏背景色为白色(#ffffff)
  3. usingComponents: 引用了一个名为my-component的自定义组件,它位于/components/my-component/my-component路径下;
  4. enablePullDownRefresh: 开启下拉刷新功能;
  5. backgroundTextStyle: 下拉动画样式为 dark(黑色);
  6. disableScroll: 默认不禁止页面滚动。

这是一个简单的示例,实际上,.json文件还可以包含许多其他的配置选项,具体的配置方式可以参考微信小程序文档。

在这里插入图片描述

在JSON配置文件中修改项目首页,通常需要找到相应的配置项并进行修改。具体的步骤取决于你使用的项目和框架。以下是一个示例,展示了如何在JSON配置文件中修改项目首页:

假设你的项目使用了Vue.js框架,并且使用了Vue Router进行路由管理。你可以按照以下步骤修改项目首页:

打开项目中的router.json文件或者类似的路由配置文件。
在JSON文件中找到routes数组,这个数组定义了项目的所有路由。
找到你想要修改的首页路由,通常它的path为/。
修改该路由的component属性,将其指向你新的首页组件。例如,将原来的Home组件修改为NewHome组件。
json
{
“routes”: [
{
“path”: “/”,
“component”: “NewHome”
},
// 其他路由…
]
}
保存文件并重新启动项目,现在你的项目首页应该会展示新的组件内容。
请注意,上述步骤只是一个示例,具体的操作取决于你使用的项目和框架。确保参考你项目和框架的文档来获取更准确的修改方式。

WXML(WeiXin Markup Language)

在这里插入图片描述
在这里插入图片描述

WXML(WeiXin Markup Language)是一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。它类似于网页开发中的HTML。在WXML文件中,开发者可以在组件(微信小程序中将“标签”称为“组件”)上定义特定的事件。当事件触发时,微信小程序就会执行逻辑层中对应的事件处理函数,来完成页面与用户的通信。

除了标签和事件,WXML还提供了一些特殊的属性,如wx:ifwx:elsewx:elif,用于条件渲染;wx:for用于列表渲染;wx:key可以指定列表中项目的唯一的标识符,这样可以在数据改变时,重新渲染指定的项目,而不是全量更新。

WXML与HTML的主要区别在于,WXML具有微信小程序的自定义组件和原生组件,比如<view><text><button>等,这些都是微信小程序特有的。此外,WXML的事件处理也与HTML有所不同,它采用的是bindtap、bindinput等方式来绑定事件,而不是HTML的onclick、oninput等方式。

总的来说,WXML是一种专为微信小程序设计的标记语言,它帮助开发者定义了微信小程序的用户界面和交互方式。

WXSS样式

在这里插入图片描述
在这里插入图片描述
WXSS(WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式,也就是用来决定WXML的组件应该怎么显示。

WXSS具有CSS的大部分特性,但是,WXSS新增了尺寸单位rpx,开发者可以免去换算的烦恼,只要交给小程序底层来换算即可。此外,WXSS仅支持部分CSS选择器。

在WXSS中,可以选择使用全局样式或局部样式。全局样式会作用于当前小程序的所有页面,而局部页面样式仅对当前页面生效。

总的来说,WXSS是一种专为微信小程序设计的样式语言,它帮助开发者定义和控制微信小程序的用户界面样式。

WXSS与CSS的主要区别如下:

  1. 新增尺寸单位rpx:WXSS在CSS的基础上新增了一个尺寸单位rpx,它可以根据屏幕宽度自动进行换算,使得开发者在不同设备上无需进行复杂的换算操作。
  2. 选择器限制:WXSS仅支持部分CSS选择器,例如,它不支持伪类和伪元素选择器。
  3. 样式导入:WXSS不支持使用@import语句导入其他样式文件,但可以使用@import导入微信小程序的自定义样式库。
  4. 样式隔离:WXSS支持局部样式,这意味着在一个页面定义的样式只会作用于当前页面,不会影响其他页面。
  5. 样式优先级:在WXSS中,样式优先级遵循CSS的优先级规则,但增加了小程序自定义组件的样式优先级规则。

总的来说,WXSS是一种专为微信小程序设计的样式语言,它具有CSS的大部分特性,但也存在一些限制和新增的特性,以适应微信小程序的特殊需求。开发者在使用WXSS时应了解其特性与限制,以更好地控制微信小程序的界面样式。

js逻辑交互

在这里插入图片描述
在微信小程序中,JavaScript(JS)主要负责处理用户交互、数据管理和页面跳转等逻辑操作。以下是微信小程序中JS的一些主要功能:

  1. 页面注册:每个小程序页面都需要在JS文件中进行注册,包括页面的初始数据、生命周期函数、事件处理函数等。
  2. 数据绑定:JS可以通过WXML模板中的数据进行数据绑定,实现动态渲染页面内容。
  3. 事件处理:JS可以监听并处理用户交互事件,例如点击按钮、滑动页面等,通过事件处理函数来实现相应的逻辑操作。
  4. 网络请求:JS可以使用微信小程序提供的网络请求API,向后端发送请求并获取数据,实现前后端交互。
  5. 本地存储:JS可以使用微信小程序提供的本地存储API,将数据存储在本地,实现数据的持久化。
  6. 页面跳转:JS可以使用微信小程序提供的页面跳转API,实现页面之间的跳转和传参。
  7. 位置信息获取:JS可以使用微信小程序提供的位置信息获取API,获取用户的位置信息,实现基于位置的服务。
  8. 设备信息获取:JS可以使用微信小程序提供的设备信息获取API,获取用户的设备信息,如型号、操作系统等,实现个性化推荐等服务。

总的来说,JS在微信小程序中扮演着非常重要的角色,它负责处理用户交互、数据管理和页面跳转等逻辑操作,使得小程序能够实现复杂的功能和服务。开发者需要熟练掌握JS语言及其在微信小程序中的应用,以开发出高质量的小程序应用。

小程序的宿主环境

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小程序的宿主环境是微信应用程序。微信小程序是一种内嵌在微信应用中的小程序,因此它的宿主环境就是微信应用本身。

微信小程序借助宿主环境微信提供的能力,可以完成微信支付、微信扫码、微信登录、地理定位等普通网页无法完成的功能。无论手机的系统是Android还是iOS,微信小程序的宿主环境都是微信(Android版微信和iOS版微信)。

小程序宿主环境包含的内容包括通信模型、运行机制、组件和API四个方面。其中,通信的主体是小程序中的渲染层和逻辑层,它们之间的通信以及逻辑层和第三方服务器之间的通信都由微信客户端进行转发。

此外,小程序宿主环境还提供了各种API和组件,供开发者使用。通过这些API和组件,开发者可以轻松地实现各种功能,如获取用户信息、支付、定位等。同时,小程序宿主环境还提供了一套完整的运行机制,包括小程序的启动、页面渲染等过程,确保小程序的正常运行。

总之,小程序的宿主环境是微信应用,它为小程序提供了各种功能和API,使得小程序能够实现复杂的功能和服务。开发者需要了解并熟练掌握小程序宿主环境的相关知识和技术,以开发出高质量的小程序应用。
在这里插入图片描述

https://www.bilibili.com/video/BV1WA411N75W/?spm_id_from=333.337.search-card.all.click&vd_source=3ef6540f8473c7367625a53b7b77fd66
在这里插入图片描述

小程序优势:1、免安装,使用方便;2、依托流量平台,打开率高,易搜索,易发现,易分享;3、开发成本低。

开发方法

1、原生开发——直接下载官方的开发者工具,参照官方提供的文档、视频教程和语法。
优点:上手相对容易,开发语法与api均能在文档中查到;出问题更容易定位和解决。
缺点:代码量大、组件少、语法不灵活、开发效率很低,且不同小程序平台语法不同。

2、框架开发——各种界面库与框架。
优点:使用代码更少甚至是直接使用现成的代码,采用前端编程语法和框架,提高了开发效率与代码的可维护性,使得代码更简洁。
界面库如如腾讯的weui、有赞的vantUI。直接按照文档学习、引入文件,选择自己需要的组件,搬运代码即可。
框架如腾讯的wepy、uniapp、美团mpvue均可使用类似前端vue开发框架的语法。
而熟悉react的同学,可尝试阿里的remax,京东的taro。
缺点:问题的排查成本高;框架有bug或无法支持的功能时,就很被动。

3、跨端开发(最主流)——在多个平台同步发布一个小程序。跨端开发框架使得写一套代码即可自动生成支持多个平台的小程序和h5页面。如uniapp(语法简单、组件库和插件丰富、生态好,受新手与vue开发者喜爱)、remax、taro(受react开发者喜爱)和chameleon均支持,部分还支持条件编辑(针对不同平台编写特殊逻辑)。

4、低代码开发——一个可视化页面平台,通过拖拽组件、输入配置来改变组件的样式和行为,再自动生成代码。如腾讯的WeDa。
优点:几乎无代码,连cv都不用。

5、云开发

优点:不用自己搭建后台,就能使用数据库和操作数据库的函数。即使只会前端,也能开发一个完整的小程序。
小程序也是前端,也是开发界面、交互以及一些数据请求的业务逻辑,只是语法略有区别。如微信小程序,基本语法和前端三件套HTML+JS+CSS相似。所以最后先学习前端web开发的基础知识。
最好先学习一个前端框架,如vue或者react。新手应该先用原生开发打基础,了解小程序的机制

个人建议学习路线
1-前期肯定是前端三大件。
2-学点nodejs,主要是为后期学习vue。需要要node环境安装脚手架vue-cli。
3-认真学习vue,熟悉vue中基本的vuex、router、axios。
4-最好再学小程序,你会发现。小程序整体思路和vue差不多。然后跟着官方文档敲一般就入门了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/148966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel安装

Sentinel 微服务保护的技术有很多&#xff0c;但在目前国内使用较多的还是Sentinel&#xff0c;所以接下来我们学习Sentinel的使用。 1.介绍和安装 Sentinel是阿里巴巴开源的一款服务保护框架&#xff0c;目前已经加入SpringCloudAlibaba中。官方网站&#xff1a; 首页 | Se…

Curve 文件存储的缓存策略

Curve 文件存储简介 Curve 文件存储的架构如下&#xff1a; 客户端 Posix 兼容&#xff1a;像本地文件系统一样使用&#xff0c;业务无缝接入&#xff0c;无侵入性&#xff1b; 独立的元数据集群&#xff1a;元数据分布式设计&#xff0c;可以无限扩展。同一文件系统可以在数…

JAVA设计模式-代理模式

一.概念 在软件开发中&#xff0c;也有一种设计模式可以提供与代购网站类似的功能。由于某些原因&#xff0c;客户端不想或不能直接访问一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接访问&#xff0c;该方案对应的设计模式被称为代理模式。 ​ 代理模…

Android自定义Drawable---灵活多变的矩形背景

Android自定义Drawable—灵活多变的矩形背景 在安卓开发中&#xff0c;我们通常需要为不同的按钮设置不同的背景以实现不同的效果&#xff0c;有时还需要这些按钮根据实际情况进行变化。如果采用编写resource中xml文件的形式&#xff0c;就需要重复定义许多只有微小变动的资源…

《视觉 SLAM 十四讲》V2 第 5 讲 相机与图像

文章目录 相机 内参 && 外参5.1.2 畸变模型单目相机的成像过程5.1.3 双目相机模型5.1.4 RGB-D 相机模型 实践5.3.1 OpenCV 基础操作 【Code】OpenCV版本查看 5.3.2 图像去畸变 【Code】5.4.1 双目视觉 视差图 点云 【Code】5.4.2 RGB-D 点云 拼合成 地图【Code】 习题题…

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备&#xff1a; 二、配置mariadb主从复制 三台主机下载mariadb 1&#xff09;主的操作 2&#xff09;从的操作 3&#xff09;测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…

使用Jest测试Cesium源码

使用Jest测试Cesium源码 介绍环境Cesium安装Jest安装Jest模块包安装babel安装Jest的VSC插件 测试例子小结 介绍 在使用Cesium时&#xff0c;我们常常需要编写自己的业务代码&#xff0c;其中需要引用Cesium的源码&#xff0c;这样方便调试。此外&#xff0c;目前代码中直接使用…

阿里云对象存储OSS SDK的使用

官方文档 https://help.aliyun.com/zh/oss/developer-reference/java 准备工作 windows安装好JDK&#xff0c;这里使用JDK1.8为例 windows安装好IDEA&#xff0c;这里使用IDEA2022 登录阿里云控制台&#xff0c;通过免费试用OSS或开通OSS 步骤 配置访问凭证 有临时和长期…

机器人中的数值优化|【七】线性搜索牛顿共轭梯度法、可信域牛顿共轭梯度法

机器人中的数值优化|【七】线性搜索牛顿共轭梯度法、可信域牛顿共轭梯度法 Line Search Newton-CG, Trust Region Newton-CG 往期回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbro…

set和map的封装

目录 介绍 红黑树代码 set insert的迭代器转换问题 为什么会有这样的问题? 如何解决 代码 map 注意点 代码 介绍 set和map的底层都是红黑树,所以我们可以在自己实现的红黑树(简易版)的基础上,进行封装,成为简易的set和map 红黑树代码 #pragma once#include <…

【逐步剖C】-第十一章-动态内存管理

一、为什么要有动态内存管理 从我们平常的学习经历来看&#xff0c;所开辟的数组一般都为固定长度大小的数组&#xff1b;但从很多现实需求来看需要我们开辟一个长度“可变”的数组&#xff0c;即这个数组的大小不能在建立数组时就指定&#xff0c;需要根据某个变量作为标准。…

创建vue3工程

一、新建工程目录E:\vue\projectCode\npm-demo用Visual Studio Code 打开目录 二、点击新建文件夹按钮&#xff0c;新建vue3-01-core文件夹 三、右键vue3-01-core文件夹点击在集成终端中打开 四、初始化项目&#xff0c;输入npm init 一直敲回车直到创建成功如下图 npm init 五…

MATLAB 函数签名器

文章目录 MATLAB 函数签名器注释规范模板参数类型 kind数据格式 type选项的支持 使用可执行程序封装为m函数程序输出 编译待办事项推荐阅读附录 MATLAB 函数签名器 MATLAB 函数签名器 (FUNCSIGN) &#xff0c;在规范注释格式的基础上为函数文件或类文件自动生成函数签名&#…

select完成服务器并发

服务器 #include <myhead.h>#define PORT 4399 //端口号 #define IP "192.168.0.191"//IP地址//键盘输入事件 int keybord_events(fd_set readfds); //客户端交互事件 int cliRcvSnd_events(int , struct sockaddr_in*, fd_set *, int *); //客户端连接事件 …

国庆day5

客户端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);socket new QTcpSocket(this);//此时&#xff0c;已经向服务器发送连接请求了&#xff0c;如果成功连…

第一百六十四回 如何实现NumberPicker

文章目录 1.概念介绍2.使用方法2.1 NumberPicker2.2 CupertinoPicker 3.示例代码4.内容总结 我们在上一章回中介绍了"如何在任意位置显示PopupMenu"相关的内容&#xff0c;本章回中将介绍如何实现NumberPicker.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1.概…

【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)

目录 前言 四、循环程序设计 4.1 计算平均成绩——循环程序 4.1.1 后判断条件的循环 a. 语法 b. 典例 4.1.2 先判断条件的循环 a. 语法 b. 典例 4.1.3 for语句 a. 语法 b. 典例 4.2 计算全班每人平均成绩—多重循环 4.2.1 打印100以内素数 4.2.2 百钱百…

System Generator学习——使用 AXI 接口和 IP 集成器

文章目录 前言一、目标二、步骤1、检查 AXI 接口2、使用 System Generator IP 创建一个 Vivado 项目3、创建 IP 集成设计&#xff08;IPI&#xff09;4、实现设计 总结 前言 在本节中&#xff0c;将学习如何使用 System Generator 实现 AXI 接口。将以 IP 目录格式保存设计&am…

【MATLAB-基于直方图优化的图像去雾技术】

【MATLAB-基于直方图优化的图像去雾技术】 1 直方图均衡2 程序实现3 局部直方图处理 1 直方图均衡 直方图是图像的一种统计表达形式。对于一幅灰度图像来说&#xff0c;其灰度统计直方图可以反映该图像中不同灰度级出现的统计情况。一般而言&#xff0c;图像的视觉效果和其直方…

HUAWEI悦盒ec6108v9c 如何刷成海纳思系统(家用低功耗服务器,使用Home Assistant服务)

环境&#xff1a; 1.HW悦盒ec6108v9c一套 2.16G U盘 3.格式化软件USB_format.exe 4.固件 mv100-mdmo1g-usb-flash.zip&#xff08;底层是Ubuntu 20.04系统&#xff09; 5.十字螺丝刀 6.翘片/薄铲子 7.有线网络环境 8.镊子/回形针 问题描述&#xff1a; 最近玩智能家居…