小程序 - 起步:小程序的构成、宿主环境、协同工作和发布

news2025/1/12 3:43:51

小程序 - 起步:小程序的构成、宿主环境、协同工作和发布

Date: January 5, 2023
Sum: 小程序的构成、宿主环境、协同工作和发布


小程序简介

小程序与普通网页开发的区别

1. 运行环境不同

网页运行在浏览器环境中

小程序运行在微信环境中

2. API 不同

由于运行环境的不同,所以小程序中,无法调用 DOM 和 BOM 的 API。但是,小程序中可以调用微信环境提供的各种 API,例如:地理定位、扫码、支付

3. 开发模式不同

网页的开发模式:浏览器 + 代码编辑器

小程序有自己的一套标准开发模式:申请小程序开发账号、安装小程序开发者工具、创建和配置小程序项目




第一个小程序-注册小程序开发帐号

注册:

使用浏览器打开 https://mp.weixin.qq.com/ 网址,点击右上角的“立即注册”即可进入到小程序开发账号的注册流程

开发者工具主界面组成:

Untitled




小程序代码的构成

项目结构

1. 了解项目的基本组成结构

Untitled

① pages 用来存放所有小程序的页面

② utils 用来存放工具性质的模块(例如:格式化时间的自定义模块)

③ app.js 小程序项目的入口文件

④ app.json 小程序项目的全局配置文件

⑤ app.wxss 小程序项目的全局样式文件

⑥ project.config.json 项目的配置文件

⑦ sitemap.json 用来配置小程序及其页面是否允许被微信索引


2. 小程序页面的组成部分

小程序官方建议把所有小程序的页面,都存放在 pages 目录中,以单独的文件夹存在,如图所示:

Untitled

其中,每个页面由 4 个基本文件组成,它们分别是:

① .js 文件(页面的脚本文件,存放页面的数据、事件处理函数等)

② .json 文件(当前页面的配置文件,配置窗口的外观、表现等)

③ .wxml 文件(页面的模板结构文件)

④ .wxss 文件(当前页面的样式表文件)



JSON 配置文件

1. JSON 配置文件的作用

JSON 是一种数据格式,在实际开发中,JSON 总是以配置文件的形式出现。小程序项目中也不例

外:通过不同的 .json 配置文件,可以对小程序项目进行不同级别的配置。

小程序项目中有 4 种 json 配置文件,分别是:

① 项目根目录中的 app.json 配置文件

② 项目根目录中的 project.config.json 配置文件

③ 项目根目录中的 sitemap.json 配置文件

④ 每个页面文件夹中的 .json 配置文件


2. app.json 文件

app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、底部 tab 等。Demo 项目里边的 app.json 配置内容如下:

{
"pages": [
  "pages/list/list",
  "pages/index/index",
  "pages/logs/logs"
],
"window": {
  "backgroundTextStyle": "light",
  "navigationBarBackgroundColor": "#fff",
  "navigationBarTitleText": "WeChat",
  "navigationBarTextStyle": "black"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}

简单了解下这 4 个配置项的作用:

① pages:用来记录当前小程序所有页面的路径

② window:全局定义小程序所有页面的背景色、文字颜色等

③ style:全局定义小程序组件所使用的样式版本

④ sitemapLocation:用来指明 sitemap.json 的位置


3. project.config.json 文件

project.config.json 是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置,例如:

setting 中保存了编译相关的配置

projectname 中保存的是项目名称

appid 中保存的是小程序的账号 ID

注意:如果你想要将别人的小程序放到自己电脑上运行,那么需要将appid进行修改


4. sitemap.json 文件

微信现已开放小程序内搜索,效果类似于 PC 网页的 SEO。sitemap.json 文件用来配置小程序页面是

否允许微信索引

当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关

键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。

{
  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
  "rules": [{
  "action": "disallow",
  "page": "*"
  }]
}

注意:sitemap 的索引提示是默认开启的,如需要关闭 sitemap 的索引提示,可在小程序项目配置文

件project.config.json 的 setting 中配置字段 checkSiteMap 为 false


5. 页面的 .json 配置文件

小程序中的每一个页面,可以使用 .json 文件来对本页面的窗口外观进行配置,页面中的配置项会覆

盖app.json 的 window 中相同的配置项。例如:

Untitled

注意:在page的.json文件中,我们可以对当前的窗口外观进行个性化的配置,在app.json中我们可以对所有界面外观进行全局性的配置,如果二者冲突,会以page的为主


6. 新建小程序页面

只需要在 app.json -> pages 中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的

页面文件,如图所示:

Untitled


7. 修改项目首页

只需要调整 app.json -> pages 数组中页面路径的前后顺序,即可修改项目的首页。

小程序会把排在第一位的页面,当作项目首页进行渲染,如图所示:

Untitled



WXML 模板

1. 什么是 WXML

WXML(WeiXin Markup Language)是小程序框架设计的一套标签语言,用来构建小程序页面的结

构,其作用类似于网页开发中的 HTML。


2. WXML 和 HTML 的区别

① 标签名称不同

HTML (div, span, img, a)

WXML(view, text, image, navigator)

② 属性节点不同

超链接

③ 提供了类似于 Vue 中的模板语法

数据绑定

列表渲染

条件渲染



WXSS 样式

1. 什么是 WXSS

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,类似于网页开发中的

CSS


2. WXSS 和 CSS 的区别

① 新增了 rpx 尺寸单位

⚫ CSS 中需要手动进行像素单位换算,例如 rem

⚫ WXSS 在底层支持新的尺寸单位 rpx,在不同大小的屏幕上小程序会自动进行换算

② 提供了全局的样式和局部样式

⚫ 项目根目录中的 app.wxss 会作用于所有小程序页面

⚫ 局部页面的 .wxss 样式仅对当前页面生效

Untitled

③ WXSS 仅支持部分 CSS 选择器

⚫ .class 和 #id

⚫ element

⚫ 并集选择器、后代选择器

⚫ ::after 和 ::before 等伪类选择器



JS 逻辑交互

1. 小程序中的 .js 文件

一个项目仅仅提供界面展示是不够的,在小程序中,我们通过 .js 文件来处理用户的操作。例如:响

应用户的点击、获取用户的位置等等。


2. 小程序中 .js 文件的分类

小程序中的 JS 文件分为三大类,分别是:

① app.js

⚫ 是整个小程序项目的入口文件,通过调用 App() 函数来启动整个小程序

② 页面的 .js 文件

⚫ 是页面的入口文件,通过调用 Page() 函数来创建并运行页面

③ 普通的 .js 文件

⚫ 是普通的功能模块文件,用来封装公共的函数或属性供页面使用

例子:

Untitled




小程序的宿主环境

1. 什么是宿主环境

宿主环境(host environment)指的是程序运行所必须的依赖环境。例如:

Android 系统和 iOS 系统是两个不同的宿主环境。安卓版的微信 App 是不能在 iOS 环境下运行的,所以,Android 是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的!

Untitled


2. 小程序的宿主环境

手机微信是小程序的宿主环境,如图所示:

Untitled

小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:

微信扫码、微信支付、微信登录、地理定位、etc…


3. 小程序宿主环境包含的内容

① 通信模型

② 运行机制

③ 组件

④ API



通信模型

1. 通信的主体

小程序中通信的主体是渲染层和逻辑层,其中:

① WXML 模板和 WXSS 样式工作在渲染层

② JS 脚本工作在逻辑层
在这里插入图片描述


2. 小程序的通信模型

小程序中的通信模型分为两部分:

① 渲染层和逻辑层之间的通信

⚫ 由微信客户端进行转发

② 逻辑层和第三方服务器之间的通信

⚫ 由微信客户端进行转发

Untitled



运行机制

5. 小程序启动的过程

① 把小程序的代码包下载到本地

② 解析 app.json 全局配置文件

③ 执行 app.js 小程序入口文件,调用 App() 创建小程序实例

④ 渲染小程序首页

⑤ 小程序启动完成


6. 页面渲染的过程

① 加载解析页面的 .json 配置文件

② 加载页面的 .wxml 模板和 .wxss 样式

③ 执行页面的 .js 文件,调用 Page() 创建页面实例

④ 页面渲染完成



组件

1. 小程序中组件的分类

小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。官方把小

程序的组件分为了 9 大类,分别是:

① 视图容器

② 基础内容

③ 表单组件

④ 导航组件

⑤ 媒体组件

⑥ map 地图组件

⑦ canvas 画布组件

⑧ 开放能力

⑨ 无障碍访问


2. 常用的视图容器类组件

① view

⚫ 普通视图区域

⚫ 类似于 HTML 中的 div,是一个块级元素

⚫ 常用来实现页面的布局效果

② scroll-view

⚫ 可滚动的视图区域

⚫ 常用来实现滚动列表效果

③ swiper 和 swiper-item

⚫ 轮播图容器组件 和 轮播图 item 组件


3. view 组件的基本使用

实现如图的 flex 横向布局效果:

Untitled

  • Code:

    wxml

    <view class="container1">
      <view>A</view>
      <view>B</view>
      <view>C</view>
    </view>
    

    wxss

    .container1 view {
      width: 100px;
      height: 100px;
      text-align: center;
      line-height: 100px;
    }
    
    .container1 view:nth-child(1) {
      background-color: lightgreen;
    }
    .container1 view:nth-child(2) {
      background-color: lightskyblue;
    }
    .container1 view:nth-child(3) {
      background-color: lightpink;
    }
    
    .container1 {
      display: flex;
    }
    

4. scroll-view 组件的基本使用

实现如图的纵向滚动效果:

Untitled

  • Code:

    /* scroll-view 组件的基本使用 */
    .container1 view {
      width: 100px;
      height: 100px;
      text-align: center;
      line-height: 100px;
    }
    
    .container1 view:nth-child(1) {
      background-color: lightgreen;
    }
    .container1 view:nth-child(2) {
      background-color: lightskyblue;
    }
    .container1 view:nth-child(3) {
      background-color: lightpink;
    }
    
    .container1 {
      width: 100px;
      /* 给scroll-view固定高度 */
      height: 120px;
      border: 1px solid red;
    }
    
    <!-- scroll-view 组件的基本使用 -->
      <!-- scroll-x 属性 : 允许横向滚动 -->
      <!-- scroll-y 属性 : 允许纵向滚动 -->
    <scroll-view class="container1" scroll-y>
      <view>A</view>
      <view>B</view>
      <view>C</view>
    </scroll-view>
    

5. swiper 和 swiper-item 组件的基本使用

实现如图的轮播图效果:

Untitled

  • Code:

    /* 轮播图的样式 */
    .swiper-container {
      height: 150px;
    }
    
    .item {
      height: 100%;
      line-height: 150px;
      text-align: center;
    }
    
    swiper-item:nth-child(1) .item {
      background-color: lightgreen;
    }
    swiper-item:nth-child(2) .item {
      background-color: lightskyblue;
    }
    swiper-item:nth-child(3) .item {
      background-color: lightpink;
    }
    
    <swiper class="swiper-container" indicator-dots indicator-color="white" indicator-active-color="gray" autoplay interval="3000" circular>
      <swiper-item>
        <view class="item">A</view>
      </swiper-item>
      <swiper-item>
        <view class="item">B</view>
      </swiper-item>
      <swiper-item>
        <view class="item">C</view>
      </swiper-item>
    </swiper>
    

6. swiper 组件的常用属性

Untitled


7. 常用的基础内容组件

① text

⚫ 文本组件

⚫ 类似于 HTML 中的 span 标签,是一个行内元素

② rich-text
⚫ 富文本组件
⚫ 支持把 HTML 字符串渲染为 WXML 结构


8. text 组件的基本使用

通过 text 组件的 user-select 属性,实现长按选中文本内容的效果:

Untitled

  • Code:

    <view>
      手机号支持长按选中效果
      <text user-select>13800005056</text>
    </view>
    

9. rich-text 组件的基本使用

通过 rich-text 组件的 nodes 属性节点,把 HTML 字符串渲染为对应的 UI 结构:

Untitled

  • Code:

    <rich-text nodes="<h1 style='color: red;'>标题</h1>"></rich-text>
    

10. 其它常用组件

① button

⚫ 按钮组件

⚫ 功能比 HTML 中的 button 按钮丰富

⚫ 通过 open-type 属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息等)

② image

⚫ 图片组件

⚫ image 组件默认宽度约 300px、高度约 240px

③ navigator(后面课程会专门讲解)

⚫ 页面导航组件

⚫ 类似于 HTML 中的 a 链接


11. button 按钮的基本使用

Untitled

  • Code:

    <!-- 按钮组件的基本使用 -->
    <!-- 通过 type 属性指定按钮颜色类型 -->
    <!-- <button>普通按钮</button>
    <button type="primary">主色调按钮</button>
    <button type="warn">警告按钮</button> -->
    <!-- size="mini" 小尺寸按钮 -->
    <!-- <button size="mini">普通按钮</button>
    <button type="primary" size="mini">主色调按钮</button>
    <button type="warn" size="mini">警告按钮</button> -->
    <!-- plain 镂空按钮 -->
    <!-- <button size="mini" plain>普通按钮</button>
    <button type="primary" size="mini" plain>主色调按钮</button>
    <button type="warn" size="mini" plain>警告按钮</button> -->
    

注意:我们可以修改app.json中的style属性,从而来决定是否使用新版样式还是旧版样式

Untitled


12. image 组件的基本使用

Untitled


13. image 组件的 mode 属性

image 组件的 mode 属性用来指定图片的裁剪和缩放模式,常用的 mode 属性值如下:

Untitled



API

1. 小程序 API 概述

小程序中的 API 是由宿主环境提供的,通过这些丰富的小程序 API,开发者可以方便的调用微信提供

的能力,例如:获取用户信息、本地存储、支付功能等。


2. 小程序 API 的 3 大分类

小程序官方把 API 分为了如下 3 大类:

① 事件监听 API

⚫ 特点:以 on 开头,用来监听某些事件的触发

⚫ 举例:wx.onWindowResize(function callback) 监听窗口尺寸变化的事件

② 同步 API

⚫ 特点1:以 Sync 结尾的 API 都是同步 API

⚫ 特点2:同步 API 的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常

⚫ 举例:wx.setStorageSync(‘key’, ‘value’) 向本地存储中写入内容

③ 异步 API

⚫ 特点:类似于 jQuery 中的 $.ajax(options) 函数,需要通过 success、fail、complete 接收调用的结果

⚫ 举例:wx.request() 发起网络数据请求,通过 success 回调函数接收数据




协同工作和发布

协同工作

1. 了解权限管理需求

在中大型的公司里,人员的分工非常仔细:同一个小程序项目,一般会有不同岗位、不同角色的员工同时参与设计与开发。

此时出于管理需要,我们迫切需要对不同岗位、不同角色的员工的权限进行边界的划分,使他们能够高效的进行协同工作。


2. 了解项目成员的组织结构

Untitled


3. 小程序的开发流程

Untitled



小程序成员管理

1. 成员管理的两个方面

小程序成员管理体现在管理员对小程序项目成员及体验成员的管理:

① 项目成员:

⚫ 表示参与小程序开发、运营的成员

⚫ 可登录小程序管理后台

⚫ 管理员可以添加、删除项目成员,并设置项目成员的角色

② 体验成员:

⚫ 表示参与小程序内测体验的成员

⚫ 可使用体验版小程序,但不属于项目成员

⚫ 管理员及项目成员均可添加、删除体验成员

Untitled


2. 不同项目成员对应的权限

Untitled


3. 开发者的权限说明

① 开发者权限:可使用小程序开发者工具及对小程序的功能进行代码开发

② 体验者权限:可使用体验版小程序

③ 登录权限:可登录小程序管理后台,无需管理员确认

④ 开发设置:设置小程序服务器域名、消息推送及扫描普通链接二维码打开小程序

⑤ 腾讯云管理:云开发相关设置


4. 添加项目成员和体验成员

Untitled

管理员可以增删项目成员和体验成员



小程序的版本

1. 软件开发过程中的不同版本

在软件开发过程中,根据时间节点的不同,会产出不同的软件版本,例如:

① 开发者编写代码的同时,对项目代码进行自测(开发版本)

② 直到程序达到一个稳定可体验的状态时,开发者把体验版本给到产品经理和测试人员进行体验测试

③ 最后修复完程序的 Bug 后,发布正式版供外部用户使用


2. 小程序的版本

Untitled



发布上线

1. 小程序发布上线的整体步骤

一个小程序的发布上线,一般要经过上传代码 -> 提交审核 -> 发布这三个步骤。


2. 上传代码

① 点击开发者工具顶部工具栏中的“上传” 按钮

② 填写版本号以及项目备注

Untitled


3. 在后台查看上传之后的版本

登录小程序管理后台 -> 管理 -> 版本管理 -> 开发版本,即可查看刚才提交上传的版本了:

Untitled


4. 提交审核

⚫ 为什么需要提交审核:为了保证小程序的质量,以及符合相关的规范,小程序的发布是需要经过腾讯官方审核的。

⚫ 提交审核的方式:在开发版本的列表中,点击“提交审核”按钮之后,按照页面提示填写相关的信息,就能把小程序提交到腾讯官方进行审核。

Untitled


5. 发布

审核通过之后,管理员的微信中会收到小程序通过审核的通知,此时在审核版本的列表中,点击“发布”按钮之后,即可把“审核通过”的版本发布为“线上版本”,供所有小程序用户访问和使用。

Untitled


6. 基于小程序码进行推广

相对于普通二维码来说,小程序码的优势如下:

① 在样式上更具辨识度和视觉冲击力

② 能够更加清晰地树立小程序的品牌形象

③ 可以帮助开发者更好地推广小程序

获取小程序码的 5 个步骤:

登录小程序管理后台 -> 设置 -> 基本设置 -> 基本信息 -> 小程序码及线下物料下载

Untitled



运营数据

1. 查看小程序运营数据的两种方式

① 在“小程序后台”查看

  1. 登录小程序管理后台

  2. 点击侧边栏的“统计”

  3. 点击相应的 tab 可以看到相关的数据

② 使用“小程序数据助手”查看

  1. 打开微信

  2. 搜索“小程序数据助手”

  3. 查看已发布的小程序相关的数据




总结:

① 能够知道如何创建小程序项目

⚫ 微信开发者工具的使用、appID 的获取

② 能够清楚小程序项目的基本组成结构

⚫ app.js、app.json、app.wxss、pages 文件夹

③ 能够知道小程序页面由几部分组成

⚫ wxml、wxss、json、js

④ 能够知道小程序中常见的组件如何使用

⚫ view、text、image

⑤ 能够知道小程序如何进行协同开发和发布

⚫ 成员管理、发布小程序、查看运营数据

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1308 [NOIP2011 普及组] 统计单词数————C++

题目 [NOIP2011 普及组] 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能&#xff0c;该功能可以快速定位特定单词在文章中的位置&#xff0c;有的还能统计出特定单词在文章中出现的次数。 现在&#xff0c;请你编程实现这一功能&#xff0c;具体要求是&#xff1…

数字验证学习笔记——SystemVerilog芯片验证21 ——覆盖率类型

一、覆盖率类型 覆盖率是衡量设计验证完备性的一个通用词语。随着测试逐步覆盖各种合理的组合&#xff0c;仿真过程过程会慢慢勾画你的设计情况。覆盖率工具会在仿真过程中收集信息&#xff0c;然后进行后续处理并且得到覆盖率报告。通过这个报告找出覆盖之外的盲区&#xff0…

冒泡排序模拟qsort函数

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 学习C语言&#xff0c;一般情况下都会接触到冒泡排序&#xff0c;你知道吗&#xff0c;用冒泡排序的思想可以模拟实现qsort函数&#xff08;库函数的一种&#xff0c;可以实现快排&#xff…

图解面试题:经典50题!掌握这些题,面试也太简单了!

已知有如下4张表&#xff1a;学生表&#xff1a;student(学号,学生姓名,出生年月,性别)成绩表&#xff1a;score(学号,课程号,成绩)课程表&#xff1a;course(课程号,课程名称,教师号)教师表&#xff1a;teacher(教师号,教师姓名)1.汇总分析-查询学生的总成绩并进行排名/* 【知…

CSS基础知识(盒子模型)

继承上一篇CSS的三大特性的优先级继续讲解。 1.1优先级 优先级注意点&#xff1a; 权重是有4组数字组成的&#xff0c;但是不会有进位。可以理解为类选择器永远大于元素选择器&#xff0c;id选择器永远大于类选择器以此类推。等级判断从左向右&#xff0c;如果某一位数值相同…

前端学习之CSS基础

前言 html标签就不说了&#xff0c;这次学习CSS样式&#xff0c;就是美化html标签。 快速了解什么是css 普通标签&#xff1a; 加了css样式&#xff1a; <img src"https://static.runoob.com/images/icon/mobile-icon.png" style"height:100px" /&…

No module named ‘pycocotools’

网上搜了之后 按照网上的去做 全都无果 开始自己探索 原本我pycharm里选的环境是 python3.8 (pytorch)winR输入cmd进去后 输入 python –V返回的是本地python版本2.7 所以我当前系统python版本和我pycharm里选的不一样 然而pycocotools这个包本质上应该是安装在我pycharm里…

Referer;盗链;防盗链的工作原理

目录 Referrer-policy 如何设置referer 盗链 防盗链的工作原理 绕过图片防盗链 设置meta 设置referrerpolicy"no-referrer" 客户端在请求时修改header头部 利用https网站盗链http资源网站&#xff0c;refer不会发送 常见防盗链方法 利用nginx 服务器端判…

python基础语法一

一、变量 1.1、变量定义 变量就是可变的量&#xff0c;对于一些有可能会经常变化的数据&#xff0c;我们需要使用一个符号&#xff0c;这样才能计算中使 用它&#xff0c;就像我们在小学时学过的一元方程中的"x"一样。比如说&#xff0c;我们在控制台内输入&#xf…

Java 集合List接口介绍和使用

List接口的基本介绍 1.List接口是Collection的子接口 2.List中的元素都是有序的除了LinkedList。 一些实用的方法 1.add()添加元素 2.get()得到指定位置的元素 3.addAll&#xff08;&#xff09;追加一个List 4.indexOf&#xff08;&#xff09;返回元素的位置 5.remove…

人工智能 -多任务编程、进程、线程介绍

目录1&#xff0c; 多任务的概念2&#xff0c;进程2.1进程的介绍2.2多进程完成多任务2.3进程执行带有参数的任务2.4获取进程编号2.5进程间不共享全局变量2.6主进程和子进程的结束顺序3、线程3.1多线程完成多任务3.2线程执行带有参数的任务3.3主线程和子线程的结束顺序3.4线程中…

连续子数组的最大和(从暴力理解到DP)

连续子数组的最大和题目思路暴力解题思路画出矩阵进行分析确定转移方程DP代码题目 思路 从leetcode上看到的题解&#xff0c;突然恍然大悟&#xff0c;之前不容易理解转移方程终于理解了&#xff0c;这个思路真的对新手很友好&#xff0c;现在出一个C版本&#xff0c;而且&…

谷歌出品,数据集搜索引擎上线了!

文 | 小戏记得在刚入门 ML 时&#xff0c;希望找到一个关于特定领域下的数据集&#xff0c;涉世未深的我在中文互联网不断搜索&#xff0c;可每每点进链接出来的都是某 SDN 下载的高价勒索。用惯了直接从老师同学那里讨来的数据集的我第一次感受到了“寻找数据集”这样一个简单…

【并查集】实现思路及例题

一、应用场景 用于处理不相交集合的合并和查询问题 示例&#xff1a; n 个元素&#xff08;分属不同的的 n 个集合&#xff09;&#xff0c;进行两种操作&#xff1a; 并 —— 给出两个元素的关系&#xff0c;合并两个集合查 —— 查询两个元素是否在同一个集合 二、并查集…

「数据密集型系统搭建」原理篇|用什么方式存储数据最合适

本篇来聊聊数据存储的内容&#xff0c;看看程序世界里数据是以什么形式存在的&#xff1f;为了描述数据并把它们和这个现实世界关联起来我们一般都是如何去进行表达的&#xff1f;最后通过我们习惯的表达方式再结合数据结构是如何存储下来的&#xff1f; 在进行技术方案设计的时…

分享102个PHP源码,总有一款适合您

PHP源码 分享117个PHP源码&#xff0c;总有一款适合您 PHP源码下载链接&#xff1a;https://pan.baidu.com/s/1Ike0x99BcMfZPy6tFSpM9w?pwdzqem 提取码&#xff1a;zqem import os from time import sleepimport requests from bs4 import BeautifulSoup from docx import D…

Linux 系统Bash的常用功能

了解了基本的Linux文件文件系统的概念后,我们将更深入的了解一下Linux的其他方面的内容,那就是我们所使用的用户接口,也就是大家常听到的 Shell ,是一种Linux的命令接口,在 Linux 的世界中,默认使用的是 GNU 开发出来的 shell ,称为 BASH Shell,简单来说,我们之前使用的几个命令…

10.JS笔记-对象

1、什么是对象 对象是一个具体的事物&#xff0c;在js中&#xff0c;对象是一组无序的属性和方法的集合 属性&#xff1a;事物的特征 方法&#xff1a;事物的行为 2、创建对象 利用字面量创建对象利用new Object创建对象利用构造函数创建对象 2.1 变量、属性和方法、函数的…

人工智能的核心技术是什么?

&#xff08;本文阅读时间&#xff1a;5分钟&#xff09;人工智能的核心技术是它的算法被广泛认可的「算法」专业定义是&#xff1a;算法是模型分析的一组可行的&#xff0c;确定的&#xff0c;有穷的规则。基于规则的人工智能上个世纪六七十年代出现的早期人工智能系统都是基于…

VueJs中如何自定义hooks(组合式)函数

前言在Vue当中,一个非常重要的功能就是组件的复用,编写Vue组件,更多的也是在拼装组件,将页面的各个功能进行模块化便于维护和管理,而在项目里,有些页面中的组件的逻辑功能是一样的,如果没有进行功能逻辑的复用,那么每个页面都需要重复的写一遍在Vue当中各个组件是保持独立的,如…