赞
踩
业务分层/模块划分
路由设计 父子嵌套
数据管理
组件划分:划分的原则是什么
浏览器兼容性如何处理
代码规范:如何命名的 eslint,prettier规范代码风格并进行代码检测
性能优化如何做 懒加载
校园商城APP 外卖 或者商城
1.项目描述
2.涉及技术
本地存储 加密(验证身份与反编译)
支付功能(微信支付) 登录注册验证 安全 语音提醒 评价(涉及人工智能的评情感分析的评价) 模糊查询(防抖) 筛选
1.项目描述
一款基于vant的科研助手小程序,主要有专注时间控制功能及专注时长统计(番茄时钟)、博文管理功能(音频/视频/文本/图片的格式--------可以有AI中文本与语音的转化)、背景音乐的插入。其中有权限管理(不同用户之间的浏览与互动交流)、聊天管理、点赞、收藏、云存储的数据库管理、博文浏览的节流、博文分页展示、博文搜索的防抖
2.涉及技术
vant 云开发(inc原子操作,但当多个用户都点击时只处理一次的不足) 页面之间通信pubsub
防抖 节流 拍照上传API或者云函数中的wx.chooseImage和wx.cloud.uploadFile直接选择,不需要一个一个自己调用API写监听
1.项目描述
一个基于校园疫情期间物资调度系统/后台管理系统的页面,包含物资管理、调度管理、部门管理
2.涉及技术
GIT版本管理,react 基础框架,ant design UI库 ,axios HTTP 请求,图标字体Iconfont,图片格式base64,CSS预选择器less/sass,安全处理crsf/xss/https,数据mock,webpack打包,echarts绘图
不编造,一般命名可以是:应聘+公司岗位+姓名+优势信息。
超级简历WonderCV - HR推荐简历模板,智能简历制作工具,专业中英文简历模板免费下载
个人技能
项目经历
教育背景
个人评价
事实证明自己沟通能力强、有耐心、专注力高......
自己做的项目 研究的项目
目录
2.将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。
6.后续需要使用说什么组件,就在app.json中引入组件,然后在使用的地方使用就行
如果想要使用的图标在vant中找不到,可以在iconfont中进行寻找
二学习心得 :vant+云开发+分页展示【从0开始做小程序】在线答题(3)渲染答题页面_哔哩哔哩_bilibili
三 微信小程序云开发基础到实战 微信小程序云开发基础到实战 云数据库 云函数 云存储 云调用【新视觉】_哔哩哔哩_bilibili
1.vite搭建----打包框架,像webpack:面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验 创建环境
官方文档:Vant Weapp - 轻量、可靠的小程序 UI 组件库
"style": "v2"
去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。 app.json中: "usingComponents": { "van-button": "@vant/weapp/button/index" }
1.整体上是微信小程序的创建+vant的引入
2.实现流程
先设计静态页面的框架
然后再找vant中的样式进行引入,完成静态的样式展示
然后将动态展示的内容写到js中,通过动态进行展示:这只是展示动态获取的数据,但没实现交互
进行交互:可以在wxml中使用wxs标签,相当于html中的js:在这里面写函数在当前页面需要的地方直接调用就行,之前的网易云音乐是通过bindtap进行于js中函数的绑定,两者目的一样
云开发需要在app.js中写上云环境
3.内容学习
1.将元素上移:transforme:translateY(-20rpx);
2.对于img展示的图片,最好加上mode属性=aspectFill表示图片是等比例的放大
3.在代码中右击 格式化文档 可以对代码进行格式化
4.要创建一个内容管理系统,保存改项目的数据等信息
1.首先需要将 权限进行设置,以免不能正常CRUD
如果没有开启,在请求数据的时候是请求不到的,请求结果返回为空
2.查询数据库
1.在页面上创建一个按钮,当点击的时候触发事件去查询数据库
2.查询数据库,当点击后进行展示数据库的内容 采用get进行查询结果的返回,换成count就是获取条目
采用doc可以进行筛选:里面只能放id,只能基于id进行筛选
db.collection("lx_demo").doc("8f75309d627cb10502d85e8a399fa904").get({success:res=>{console.log(res)}}) //获取数据 查询操作
展示到页面
- <!--index.wxml-->
- <button type="primary" bindtap="getData">获取</button>
- <!--当有1条数据时: <view>结果:{{obj.title}}</view> -->
- <!-- 当有多条数据时: -->
- <view wx:for="{{obj}}">结果:{{item.city}}</view>
-
- //index.js
-
- data: {
- obj: ""
- },
- getData() {
- //console.log("您点击了按钮")
- db.collection("sales").get({
- success: res => {
- console.log(res)
- this.setData({ obj: res.data })
- }
- }) //获取数据 查询操作
- // db.collection("lx_demo").doc("8f75309d627cb10502d85e8a399fa904").get({
- // success: res => {
- // console.log(res)
- // this.setData({ obj: res.data })
- // }
- // }) //获取数据 查询操作
-
- },
3.查询数据库进阶
为了避免回调地狱问题(一直查询一直回调。一旦出错会很麻烦的),因此ES6提出了promise进行解决。
- getData() {
- db.collection("sales").get().then(res => {
- console.log(res)
- this.setData({ obj: res.data })
- }
- ) //如果还需要继续查询,直接链式调用.then就可以。then 中是成功的结果 .catch是失败的结果
where查询指令:可以传入对象,比如取符合条件 值=几 的结果
4.数据库插入操作
1.写死的数据进行提交
2.通过表单动态插入
- <button type="primary" bindtap="addData">插入数据</button>
- -------
- <form bindsubmit="tosubmit">
- <input name="title" placeholder="请输入标题内容"></input>
- <button type="primary" form-type="submit">提交插入数据</button>
- <view>--- </view>
- <button type="primary" form-type="reset">重置</button>
- </form>
-
-
-
- //插入数据
- tosubmit(res){
- var rr=res.detail.value.title
- var ob=res.detail.value
- var {title}=res.detail.value //rr和title是相等的,title这种方法应用了es6的解构
- db.collection("lx_demo").add({
- //data:{title:rr}
- //data:{title:title}
- data:ob
- }).then(res=>{console.log(res)})
- },
- addData(){
- wx.showLoading({
- title: '加载中',
- mask:true
- })
- db.collection("lx_demo").add({
- data:{title:"测试数据——插入操作"}
- }).then(res=>{console.log(res)})
-
- },
5.更新数据库操作 update和set两种方法:update更新指定的,set只保留更新的字段,其他的都会删除
数据更新中,需要有筛选条件,指定要修改哪一条
1.doc更新id为 8f75309d627cdbe302ee79a1709729a6的,
2.采用where进行更新
在小程序中不可以使用where,只能使用id进行修改;在云函数中是可以的,后续讲
- <button type="primary" bindtap="upData">修改数据</button>
-
-
- //修改数据
- upData() {
- //update:更新data中指定的字段 如果是set就是更新指定字段并删除其他字段
- db.collection("lx_demo").doc("8f75309d627cdbe302ee79a1709729a6").update({
- data: {
- title: "已修改"
- //newpro:"新增的" 可以新增一些内容/字段
- }
- }).then(res => {
- console.log(res)
- })
- },
6.删除数据库 只能通过id删除
- <input placeholder="请输入删除的id" bindinput="del"></input>
- <button type="primary" bindtap="delData">删除数据</button>
-
- //删除数据
- del(res) {
- var hh=res.detail.value
- delId = hh
- console.log("获取到的数据为111:", delId)
-
- },
- delData() {
- //写死id db.collection("lx_demo").doc("8f75309d627cdbe302ee79a1709729a6").remove().then(res => { console.log(res) })
- //动态获取id
- console.log("获取到的数据为:", delId)
- db.collection("lx_demo").doc(delId).remove().then(res => { console.log(res) })
-
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
-
- },
注意:如果是控制台添加的就删不掉,只能删除用户自己插入的
可以监听数据的变化,在结果中可以看出变化的数据和最终的数据,有两个回调的方法onchange和onerror。作用就是可以将变化后的数据重新渲染,这样便于数据更新后展示给用户。
limit orderby skip是用于分页,过滤掉几条
1.比较操作符:还有neq lt lte gt gte in nin等等
- <!--pages/commond/commond.wxml-->
- <van-button type="primary" bindtap="getData"> command查询</van-button>
- <view wx:for="{{dataLIst}}" wx:key="index">{{item.title}}</view>
-
-
- const db = wx.cloud.database()
- const _ = db.command
- Page({
- data: {
- dataLIst: ""
- },
- getData() {
- db.collection("lx_demo").where({
- title:_.eq("这是测试创建云数据库中列表") //表示查询:还有neq lt lte gt gte in nin等等
- }).get().then(res => { this.setData({ dataLIst: res.data }) })
-
- },
2.逻辑操作符
and(条件1 ,条件2) 与 get(条件1).and(条件2)等价、or() 、not()、nor();其中条件可以是传入对象
3.字段操作符
exist(true) 、mod()
4.数组操作符,对于字段为数组类型的
size(长度,参数为number)、all(参数是数组,所需字段中包含改数组中的东西就是满足条件的)、
elementMatch(是一个对象,找出数组中满足对象条件的)
push,插入的时候也可以传入要插入的位置的索引 pop shift unshift pull()是移除传入的元素 pullAll addToSet
5.更新字段数据
inc()是进行自增,参数是自增的长度,可以为负值;
remove()是删除字段,不是清空是删除掉
1.基础
1.新建云函数getData ,创建好后在后台可以看到 云函数相当于是对一些函数的封装
【请求云函数————>云函数请求数据库,这样实现了前后端的分离,前端只负责逻辑就行了。数据后端处理】
2.上传并部署
3.创建:上传并部署可以只更新云函数中修改后的文件
4.向云函数传参
- //云端
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
-
- cloud.init()
- const db=cloud.database(); //一定要写在上一行init的后面
-
- // 云函数入口函数
- exports.main = async (event, context) => {
- //接收参数
- event.name
- event.age
- return await db.collection("lx_demo").get() //等待异步请求返回
- }
-
-
-
-
-
- //本地
-
- onLoad(options) {
- wx.cloud.callFunction({
- name:"getData", //云函数的名称
-
- //向云函数传递数据
- data:{
- name:"张三",
- age:18
-
- }
- }).then(res=>{
- console.log(res)
- })
-
- },
1.上传下载文件到云端,可以实现数据的上传
1.首先明白功能,设计好每一个静态页面,然后对页面中的组件进行拆分
2.实现页面之间的跳转
3.实现数据的交互
通过npm
官方文档有
eg:vant有移动端rem适配处理[px------rem],安装与导入就可以使用这些功能
postCSS进行样式CSS的处理:相关配置
将请求封装到一个js文件中,作为工具类
1.导入axios模块;
创建axios实例:通过create方法,传入baseurl;
最后将模块导出 后续还有拦截器之类的
可以在app.json中将pages中的所要调试的页面放在第一个
也可以通过删除 项目文件project.private.config.json中list字段的内容并且添加新的编译模式,将该页作为单独的页面进行调试
需要使用appid,不能是测试的id 需要真实开发人员的
在app.js中配置
微信小程序云开发基础到实战 云数据库 云函数 云存储 云调用【新视觉】_哔哩哔哩_bilibili
1.通过以下操作进入后端,输入命令 npm init -y生成自定义 package.json 文件
2.下载vant依赖
npm i @vant/weapp -S --production
3.将 app.json 中的 "style": "v2"
去除
小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。
4.修改package.config.json中的两个字段如下
- "packNpmManually": true,
- "packNpmRelationList": [
- {
- "packageJsonPath": "./miniprogram/package.json",
- "miniprogramNpmDistDir": "./miniprogram/"
- }
- ],
5.选择工具---构建npm进行构建
6.使用
在app.json中引入
- 比如使用按钮
-
- 在app.json中:
- "usingComponents": {
- "van-button": "@vant/weapp/button/index"
-
- 在wxml中
- <van-button type="primary">按钮</van-button>
结果
-------------------------------------------------------
1.直播深拷贝
unction cloneDeep(obj) {
var newobj = obj instanceof Array ? [] : {}
for (var k in obj) {
if (typeof obj[k] === 'object') {
newobj[k] = cloneDeep(obj[k])
} else {
newobj[k] = obj[k]
}
}
return newobj
}
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。