- 博客(118)
- 收藏
- 关注
原创 关于 API
问法:Vue2 中数据是定义在 data 中的 return 里的,如果定义在 return 外有什么区别?定义在 return 外的数据不能被修改,不会实现双向绑定,没有getter和setter,而 return 内的数据会被getter和setter劫持,所以可以实现双向绑定。但是如果同一个事件同时修改了 return 内和 return 外的两种数据,那么都将被修改。这是因为双向绑定的数据被getter和setter。
2024-10-27 20:53:26
406
原创 vue2 关于组件
子组件中,元素的标签内添加点击点击事件,在点击事件的回调中通过 this.$emit 由子向父传递一个自定义事件。父组件中,在子组件的标签内添加上子组件中定义的事件,并为事件绑定一个回调函数,在函数中接收数据。父组件想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段,插槽可以实现。所以作用域插槽是实现子组件向父组件传递数据的,能够让插槽内容访问到子组件的状态。因为插槽本身是在父组件模板中定义的,所以插槽内容可以访问到父组件的数据作用域。这种方式,子组件可以修改父组件的数据。
2024-10-23 14:03:23
324
原创 关于生命周期
这是系统自带的。。组件挂载的时候会执行4 个生命周期,但是如果加入了 keep-alive,将会多执行一个activated,这种组件在重复进入时只会执行activated一个周期。父组件将在全部子组件挂载完毕后执行mounted周期。
2024-10-21 16:49:49
664
原创 一个 事件循环-宏任务-微任务 的例子
JavaScript 中,任务分为和,异步任务分为和。在 ES6 中,JavaScript 引入 Promise ,至此,不需要浏览器,JavaScript 引擎也可以发起异步任务了。是由宿主(浏览器,Node)发起的,是由 JavaScript 引擎发起的。
2024-10-14 19:52:04
470
原创 任务与微任务
JavaScript 本质上是一门单线程语言。自从定时器(和)加入到 Web API 后,浏览器提供的 JavaScript 环境就已经逐渐发展到包含任务调度多线程应用开发等强大的特性。
2024-10-14 19:04:52
982
原创 Promise.resolve()
静态方法将给定的值转换为一个Promise。如果该值本身就是一个 Promise,那么该 Promise 将被返回;如果该值是一个thenable对象,将调用其then()方法及其两个回调函数;否则,返回的 Promise 将会以该值兑现。该函数将嵌套的类 Promise 对象(例如,一个将被兑现为另一个 Promise 对象的 Promise 对象)展平,转化为单个 Promise 对象,其兑现值为一个非 thenable 值。
2024-10-13 07:00:00
2951
原创 Promise.race()
静态方法接受一个 promise 可迭代对象作为输入,并返回一个 Promise。这个返回的 promise 会随着第一个 promise 的敲定而敲定。
2024-10-12 07:00:00
907
原创 Promise.any()
静态方法将一个 Promise 可迭代对象作为输入,并返回一个 Promise。当输入的任何一个 Promise 兑现时,这个返回的 Promise 将会兑现,并返回第一个兑现的值。当所有输入 Promise 都被拒绝(包括传递了空的可迭代对象)时,它会以一个包含拒绝原因数组的拒绝。
2024-10-11 07:15:00
524
原创 Promise.allSettled()
静态方法将一个 Promise 可迭代对象作为输入,并返回一个单独的 Promise。当所有输入的 Promise 都已敲定时(包括传入空的可迭代对象时),返回的 Promise 将被兑现,并带有描述每个 Promise 结果的对象数组。
2024-10-11 07:00:00
550
原创 Promise.all()
静态方法接受一个 Promise 可迭代对象作为输入,并返回一个 Promise。当所有输入的 Promise 都 fulfilled 时,返回的 Promise 也将 fulfilled(即使传入的是一个空的可迭代对象),并返回一个包含所有兑现值的数组。如果输入的任何 Promise rejected,则返回的 Promise 将 rejected,并带有第一个rejected reason。
2024-10-10 15:50:27
1868
原创 Promise() 构造函数
Promise() 构造函数 可以创建 Promise 对象。主要用来封装一些基于回调的 API,这些 API 均未支持 Peomise。
2024-10-10 14:57:31
1444
原创 实现 Promise
想要实现基于 promise 的 API ,我们可以使用事件、普通回调或者消息传递模型来包裹一个异步操作。使用 Promise 对象可以合理的处理操作的成功或者失败。
2024-10-08 15:57:25
945
原创 使用 Promise
Promise 是现代 JavaScript 异步编程的基础。它避免了深度嵌套回调,使表达和理解异步操作序列变得更加容易,并且它们还支持一种类似于同步编程中 try…catch 语句的错误处理方式。async 和 await 关键字使得从一系列连续的异步函数调用中建立一个操作变得更加容易,避免了创建显式 Promise 链,并允许你像编写同步代码那样编写异步代码。
2024-10-07 23:55:09
1369
原创 JavaScript 中的异步
异步编程可以使得程序在执行一个可能长期运行的任务的同时,可以对其他事件做出反应,不需要等待长期任务完成,并且长期任务完成后也可以显示结果。
2024-10-07 23:16:51
1212
原创 EP45 首页banner跳转到其他页面和其他小程序
文件路径: E:/homework/uniappv3tswallpaper/pages/index/index.vue跳转到小程序的 navigator 有点不一样。<template> <view class="homeLayout pageBg"> <custom-nav-bar title="推荐"></custom-nav-bar> <view class="banner"> <swiper :indicator-
2024-10-02 07:30:00
914
原创 EP44 搜索页面的搜索结果图片展示
文件路径: E:/homework/uniappv3tswallpaper/api/apis.js添加了搜索结果的api。import { request} from "@/utils/requset.js"export function apiGetBanner() { return request({ url: "/homeBanner" })}export function apiGetDayRandom() { return request({ url: "/rando
2024-10-02 07:00:00
1573
原创 promise 异步,同步,异步同步化
以网络请求为例,异步操作获取的结果作为下一个异步操作的参数时,这种层次越深,回调嵌入回调的次数越多,代码维护越复杂。
2024-10-01 17:25:06
2297
原创 EP43 搜索页面和缓存
文件路径: E:/homework/uniappv3tswallpaper/components/custom-nav-bar/custom-nav-bar.vue增加跳转到搜索页面的 navigator 。<template> <view class="layout"> <view class="navbar"> <view class="statusBar" :style="{height:getStatusBarHeight() + 'px'}
2024-10-01 07:30:00
1309
原创 EP42 公告详情页
文件路径: E:/homework/uniappv3tswallpaper/api/apis.js先添加相应的api。import { request} from "@/utils/requset.js"export function apiGetBanner() { return request({ url: "/homeBanner" })}export function apiGetDayRandom() { return request({ url: "/randomW
2024-10-01 07:00:00
738
原创 EP41 我的评分和我的下载公用分类列表
文件路径: E:/homework/uniappv3tswallpaper/api/apis.js先添加相应的api。import { request} from "@/utils/requset.js"export function apiGetBanner() { return request({ url: "/homeBanner" })}export function apiGetDayRandom() { return request({ url: "/randomW
2024-09-30 07:30:00
873
原创 EP40 获取用户数据并渲染
文件路径: E:/homework/uniappv3tswallpaper/pages/user/user.vue<template> <view class="userLayout pageBg" v-if="userInfo"> <view class="" :style="{height:getNavBarHeight() + 'px'}"> </view> <view class="userInfo"> <view
2024-09-30 07:00:00
789
原创 EP39 页面优化
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue修改了点击图片信息后,底部安全区域透明的问题。修改了 popup 组件的标签内属性。<template> <view class=""> <view class="preview" @click="changeMask" v-if="currentInfo"> <swiper circular="true" :curren
2024-09-29 07:30:00
916
原创 EP38 分享页面传参
文件路径: E:/homework/uniappv3tswallpaper/pages/classlist/classlist.vue在 classlist 页面分享需要传递参数来确定分类和分类的标题。<template> <view class="classlist"> <view class="loadingLayout" v-if="!classList.length && !noData"> <uni-load-more st
2024-09-29 07:00:00
922
原创 EP37 分享给好友与分享到朋友圈
文件路径: E:/homework/uniappv3tswallpaper/pages/index/index.vue这两个分享的api引入方法类似声明周期。<template> <view class="homeLayout pageBg"> <custom-nav-bar title="推荐"></custom-nav-bar> <view class="banner"> <swiper :indicator-dots
2024-09-28 07:30:00
1424
原创 EP36 try{}catch(){}异步同步化
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue<template> <view class=""> <view class="preview" @click="changeMask"> <swiper circular="true" :current="currentIndex" @change="swiperChange"> <swiper-item
2024-09-28 07:00:00
1393
原创 E35 小程序调用客户端授权信息
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue<template> <view class=""> <view class="preview" @click="changeMask"> <swiper circular="true" :current="currentIndex" @change="swiperChange"> <swiper-item
2024-09-27 07:15:00
544
原创 EP34 uniapp的两个api--getImageInfo和saveImageToPhotosAlbum
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue<template> <view class=""> <view class="preview" @click="changeMask"> <swiper circular="true" :current="currentIndex" @change="swiperChange"> <swiper-item
2024-09-27 07:00:00
819
原创 EP33 评分接口和已评分状态
有则disable打分功能并且显示已给过的评分值,没有则正常进行。用于存储用户给的评分值,并存储在本地存储中。点击评分伴随着查询本地存储中是否有。中向当前图片的信息中添加一项。中解构出请求需要的几个参数。组件可以获取评分的值。
2024-09-26 07:30:00
326
原创 EP32 展示每张图片的信息
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue做了一点 v-bind 基本操作。<template> <view class=""> <view class="preview" @click="changeMask"> <swiper circular="true" :current="currentIndex" @change="swiperChange">
2024-09-26 07:00:00
649
原创 EP31 加载当前和前后各一张一共三张图片以缓解加载缓存的压力
文件路径: E:/homework/uniappv3tswallpaper/pages/preview/preview.vue因为swiper组件会自动创造节点,并缓存图片。所以首先用 v-if 来创造与摧毁节点,创造的节点中的图片会自动缓存。通过首次刷新和swiper滚动向 readImgs 数组中添加需要加载的图片并缓存。添加的图片分别是当前图片的前一张,当前图片和当前图片的后一张(考虑临界情况)。通过 set 给数组去重。includes 方法判断是否需要创造节点。<template
2024-09-25 07:30:00
949
原创 EP30 实现预览页面切换
文件路径: E:/homework/uniappv3tswallpaper/pages/classlist/classlist.vue在 navigator 标签的 url 属性中添加了 prop 参数,向子组件传递了 id 。<template> <view class="classlist"> <view class="loadingLayout" v-if="!classList.length && !noData"> <uni
2024-09-25 07:00:00
1437
原创 报错:Extraneous non-props attributes (id) were passed to component but could not be automatically inhe
子组件中存在多个根节点,在对应的根节点使用v-bind=”$attrs"进行显式绑定。父组件传递了props参数,子组件没有接收,并且子组件不止一个根节点。将子组件包裹在一个根节点下。
2024-09-24 14:02:18
1976
原创 EP29 storage存储并读取
文件路径: E:/homework/uniappv3tswallpaper/pages/classlist/classlist.vue存入本地存储<template> <view class="classlist"> <view class="loadingLayout" v-if="!classList.length && !noData"> <uni-load-more status="loading"></uni-l
2024-09-24 07:15:00
1355
原创 EP26 在onLoad周期获取参数获取对应的数据
周期中进行获取和调用函数,因为其他部分执行在onload之前,如果在onload之外调用函数,接收了参数并且获取了相应的数据。还没有获取到id和name。
2024-09-23 07:00:00
1659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人