- 博客(37)
- 收藏
- 关注
原创 20250401-vue-声明触发的事件
这个 emits 选项和 defineEmits() 宏还支持对象语法。注意如果一个原生事件的名字 (例如 click) 被定义在 emits 选项中,则监听器只会监听组件触发的 click 事件而不会再响应原生的 click 事件。
2025-04-01 16:18:48
186
原创 20250401-vue-事件参数
所有传入 $emit() 的额外参数都会被直接传向监听器。举例来说,$emit('foo', 1, 2, 3) 触发后,监听器函数将会收到这三个参数值。有时候我们会需要在触发事件时附带一个特定的值。
2025-04-01 10:53:37
177
原创 20250331-vue-组件事件1触发与监听事件
和原生DOM事件不一样,组件触发的时间没有冒泡机制。你只能监听直接子组件触发的事件。平级组件或是跨越多层嵌套的组件间通信,应使用一个外部的事件总线,或是使用一个全局状态管理方案。像组件与 prop 一样,事件的名字也提供了自动的格式转换。像3中的代码也可以这样写。父组件代码不变,子组件代码如下。这样点击效果就只会出现一次。
2025-03-31 10:06:50
389
原创 20250317-vue-Prop4
另外,type 也可以是自定义的类或构造函数,Vue 将会通过 instanceof 来检查类型是否匹配。Vue 会通过 instanceof Person 来校验 author prop 的值是否是 Person 类的一个实例。
2025-03-24 09:15:15
251
原创 20250312-vue-Props2
所有的 props 都遵循着单向绑定原则,props 因父组件的更新而变化,自然地将新的状态向下流往子组件,而不会逆向传递。这避免了子组件意外修改父组件的状态的情况,不然应用的数据流将很容易变得混乱而难以理解。另外,每次父组件更新后,所有的子组件中的 props 都会呗更新到最新值,这意味着你不应该在子组件中去更改一个 prop。导致你想要更改一个 prop 的需求通常来源于以下两种场景:1. prop 被用于传入初始值;而子组件想在之后将其作为一个局部数据属性。
2025-03-12 16:46:45
235
原创 20250311-vue-Props1
一个组件需要显式声明它所接受的 props,这样 Vue 才能知道外部传入的哪些是 props,哪些是透传 attribute。对于以对象形式声明的每个属性,key 是 prop 的名称,而值则是该 prop 预期类型的构造函数。比如,如果要求一个 prop 的值是number类型,则可使用Number构造函数作为其声明的值。对象形式的 props 声明不仅可以一定程度上作为组件的文档,而且如果其他开发者在使用你的组件时传递了错误的类型,也会在浏览器控制台中抛出警告。
2025-03-11 16:07:48
352
原创 20250311-vue组件注册
一个 Vue 组件在使用前需要先被注册,这样 Vue 才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册。
2025-03-11 09:57:58
245
原创 20250307-vue侦听器
当我们需要在状态变化时执行一些 “副作用”:例如更改 DOM,或是根据异步操作的结果去修改另一处的状态。我们可以使用 watch 选项在每次响应式属性发生变化时触发一个函数。是指那些能够在被修改时自动更新视图的属性)
2025-03-07 13:19:04
1097
原创 20250304vue-事件处理
使用 v-on 指令(简写为 @)来监听 DOM 事件。用法:v-on:click="handler" 或者 @click="handler".handler 可以是内联事件处理器,也可以是方法事件处理器。方法事件处理器。
2025-03-04 16:53:30
750
原创 20250102——v-for
公司项目的安卓和iOS端又一个版本做完了,应该也是最后一次更新了,终于有时间继续学uni-app了。我们可以使用 v-for 指令基于一个数组渲染一个列表。在 v-for 块中可以完整地访问父作用域内的属性和变量。v-for 也支持使用可选的第二个参数表示当前项的位置索引。对于多层嵌套的 v-for,作用域的工作方式和函数的作用域很类似。也可以使用 v-for 来遍历一个对象的所有属性。遍历的顺序会基于对该对象调用 Object.values() 的返回值来决定。
2025-01-02 17:17:19
265
原创 20241112继续做公司uniapp项目-学习
如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。交叉轴对齐:弹性项目可以在交叉轴上进行对齐,包括顶部对齐、底部对齐、居中对齐等,使用align-items属性定义交叉轴对齐方式。子元素的弹性项目:弹性容器中的每个子元素都成为弹性项目。主轴对齐:弹性项目可以在主轴上按照一定比例分配空间,也可以使用justify-content属性定义主轴的对齐方式。space-around:每个项目两侧的间隔相等.所以,项目之间的间隔比项目与边框的间隔大一倍.
2024-11-13 08:45:47
518
原创 20241111继续学习vue
在 Vue 中,默认情况下,状态是深度响应的。和组件实例上的其他属性一样,方法也可以在模板上被访问。此对象的所有顶层属性都会被代理到组件实例 (即方法和生命周期钩子中的。上定义,直接向组件实例添加新属性,但这个属性将无法触发响应式更新。Vue 在组件实例上暴露的内置 API 使用。有状态方法, 这个公司项目好像没用到.它同时也为内部属性保留。上使用任何以这些字符作前缀的属性。此选项的值应为返回一个对象的函数.选项来声明组件的响应式状态.因此,你应该避免在顶层。要为组件添加方法,我们需要用到。
2024-11-11 17:23:10
330
原创 20241107继续学习vue
在此示例中, 当 eventName 的值是 "focus" 时, v-on:[eventName] 就等价于 v-on:focus.会作为一个 JavaScript 表达式被动态执行,计算得到的值会被用作最终的参数。举例来说,如果你的组件实例有一个数据属性。修饰符是以点开头的特殊后缀,表明指令需要以一些特殊的方式被绑定。上面应该就是把属性 attributeName 绑定到 url 上.遇到这么个语法,没看懂,继续学吧。,那么这个绑定就等价于。指令对触发的事件调用。
2024-11-08 17:07:34
241
原创 20241106继续学习vue
也就是一段能够被求值的 JavaScript 代码。的对象实际上是一个组件,每个应用都需要一个“根组件”,其他组件将作为其子组件。这些表达式都会被作为 JavaScript ,以当前组件实例为作用域解析执行。使用选项式 API,我们可以用包含多个选项的对象来描述组件的逻辑,例如。如果你使用的是单文件组件,我们可以直接从另一个文件中导入根组件。绑定在表达式中的方法在组件每次更新时都会被重新调用,因此。,那么该 attribute 将会从渲染的元素上移除。选项所定义的属性都会暴露在函数内部的。
2024-11-06 17:18:26
178
原创 20240924uniapp学习工作-vue
下面这段代码, 当你在赋值后再访问 this.someObject, 此值已经是原来的 newObject 的一个响应式代理, this.someObject 是代理, newObject 是被代理的, 所以它俩肯定不一样.这些实例上的属性仅在实例首次创建时被添加, 因此你需要确保它们都出现在 data 函数返回的对象上. 若所需的值还未准备好, 在必要时也可以使用 null、undefined 或者其他一些值占位.此对象的所有顶层属性都会被代理到组件实例.之前学的vue基本忘光了, 重新开始吧.
2024-11-06 13:58:13
410
原创 20241010uniapp学习工作-安卓easyphoto第三方选图片慢问题解决
这是个超长的方法, 代码很多, 我又一次预设这玩意我看不懂, 就算看懂了, 它这是一下子把图片加载进来, 改为分批加载很难, 就算改好了怎么分批显示也好难.虽然领导没说什么, 我真实羞愧的无地自容, 我至少应该定位到这个循环, 再去找领导支持的. 结果东冲西撞绕来绕去, 还牢骚满腹, 问题还丝毫没得到解决.这块会不会导致慢, 这就不是我能看出来的, 可能打断点也试不出来, 因为这段代码不循环的话应该也不慢.于是我上来就预设, 这个问题我很可能改不好, 这是个超级大难题, 需要很长时间, 最终也未必有结果.
2024-10-10 11:19:24
500
原创 20241009uniapp学习工作-安卓文件路径问题
使用内部存储空间中的目录保存其他应用不应访问的敏感信息。应用专属外部存储空间目录: 这些目录既包括用于存储持久性文件的专属位置, 也包括用于存储缓存数据的其他位置. 其他应用可以在具有适当权限的情况下访问这些目录, 但存储在这些目录中的文件仅供你的应用使用. 如果你明确打算创建其他应用能够访问的文件, 你的应用应改为将这些文件存储在外部空间的共享存储空间部分.如果数据仅供你的应用使用, 应使用应用专属存储空间. 对于可分享的媒体内容, 应使用共享的存储空间, 以便其他应用可以访问相应内容.
2024-10-09 17:21:28
957
原创 20240925uniapp学习工作-安卓问题
安卓问题目前还有扫条码每次返回结果不一样问题,扫模糊条码识别慢问题,选择图片返回路径问题……真是太讨厌安卓开发了。修改主工程build.gradle(:app),添加packagingOptions节点。上面这些操作都是为了使用新的安卓图片选择器, 因为之前测试Intent的方式一直不好用.在 build.gradle(:app) 的 dependencies 里加上。因为公司的测试机是不知道啥年的格力手机……结果, 下午用自己手机测, 发现没问题.这个从1.0.0升级到1.7.0报错。
2024-09-25 16:32:59
712
原创 20240923uniapp学习工作-vue
在上面的示例代码中,我们定义了一个目标对象target,并使用Proxy对象包装它。然后,我们定义了一个handler对象,它包含了get和set方法,用于拦截对象的读写操作。在get方法中,我们输出了被读取的属性名称,并返回属性值。在set方法中,我们输出了被写入的属性名称和值,并将值写入目标对象。最后,我们使用proxy对象读取了目标对象的name属性,并将其输出到控制台。然后,我们使用proxy对象将目标对象的age属性设置为21,并将设置的过程输出到控制台。安卓开发又出奇怪的问题.搞了差点一天.
2024-09-23 17:11:12
357
原创 20240920uniapp学习工作-vue
这里的 attributeName 会作为一个 js 表达式被动态执行, 计算得到的值会被用作最终的参数.绑定style时, 且文本无法选择绑定selectable, 颜色恢复, 文本可以选择学习前端最好的方法还是实测.eventName 可以是 focus, click 或自定义事件.动态参数表达式因为某些字符的缘故有一些语法限制, 比如空格和引号, 在 HTML attribute 名称中都是不合法的.如果你需要传入一个复杂的动态参数, 推荐使用计算属性替换复杂的表达式. 计算属性后面学.
2024-09-20 17:24:37
922
原创 20240919uniapp学习工作-自定义控件
data() 函数用于定义组件的状态, vue在组件的初始化阶段会调用 data() 函数获取数据对象, 并进行响应式处理, 这是实现数据绑定和响应式更新的基础.export default 用于到处模块, 允许将一个模块中的内容默认到处, 使得其他模块可以通过 import 语句导入这个默认导出的内容.安卓又出问题, 又是某个品牌某个人的手机出问题, 然后自己这边几个测试机都无法重现的问题.继续看template中最后一段, 也没什么看不懂的了, 这都是学习的效果.燃后这段代码就没什么不懂的了.
2024-09-19 16:48:42
180
原创 20240918uniapp学习工作-自定义控件
起始线和终止线决定了 flex 容器中的 flex 元素从哪个方向开始排列. 例如, 如果通过 direction:ltr 设置了文字书写方向是从左到右, 那么起始线就是左边, 终止线就是右边. 此时, 如果我们设置的 flex-direction 值是 row, 那么 flex 元素将会从左到右开始排列. 但如果我们设置的 flex-direction 值是 row-reverse, 那么 flex 元素将会从右到左开始排列.举个例子,上面的例子中有 a、b、c 3个 Flex 元素。
2024-09-18 16:27:00
1077
原创 20240914uniapp学习工作-改扫码慢的问题2
继续解决安卓app扫码太慢的问题, 用的是华为的扫码sdk.我们项目肯定用 Default View Mode, 扫码流程由 Scan Kit 处理, 扫码界面也有 Scan Kit 提供.安上这个在灵道的催催催下终于弄完了扫码. 一直忙到下午3点. 也没空记录.app的扫码速度感觉变快了很多.还有点时间,继续研究同事封装的组件.uni-icons是uniapp的图标组件, 用于展示移动端常见的图标, 可自定义颜色大小.
2024-09-18 09:46:47
416
原创 20240913uniapp学习工作-改扫码慢的问题1
5 在应用级根目录下打开混淆配置文件“proguard-rules.pro”,加入排除统一扫码服务SDK的混淆配置脚本。
2024-09-13 16:56:23
251
原创 20240912uniapp学习工作-自定义控件
昨天看到 search 样式,继续.这句是文本输入,其中 v-model 用于在表单输入元素或组件上创建双向绑定. 是vue的内置指令创建绑定后,下面脚本中的key发生改变,搜索框中的内容就会跟着改变了.
2024-09-12 17:31:49
875
原创 20240911uniapp学习工作-自定义控件
列表页上面有个搜索框, 是同事自定义的, 也是一个vue文件, 名为 search.vue, 同样也分 template script style 三块. 先看 template.我之前是做iOS的, 安卓离职后应公司要求赶鸭子上架接过了安卓的活, 现在鸿蒙要出来了, 公司不想花钱再雇个鸿蒙开发者, 于是拥抱uniapp.这是在另一个页面找到的.content定义,看来在一个页面定义的样式,在另一个页面也可以使用?快下班了, 赶紧做了个页面出来,没做记录,明天再说了。下面是 search 的样式定义,
2024-09-11 17:17:21
288
原创 20240910uniapp学习工作-VUE
形式上, display 属性设置元素的内部和外部的显示类型. 外部类型设置元素参与流式布局, 内部类型设置子元素的布局. 而 display: flex 就属于内部类型, 内部显示类型定义了该内容布局时的格式上下文的类型, flex 表示该元素的行为类似块级元素并且根据弹性盒模型布局它的内容.display 是 css 的一个属性, 用于设置元素是否被视为块级或行级盒子, 以及用于子元素的布局, 例如流式布局, 网格布局, 或弹性布局.flex 弹性盒子布局是怎么回事呢?有一篇介绍的文章. 看了下.
2024-09-10 16:50:05
1042
原创 20240909uniapp学习工作-VUE
应用根组件的内容将会被渲染在容器元素里面。容器元素自己将被视为应用的一部分。.mount()方法应该始终在整个应用配置和资源注册完成后被调用。同时请注意,不同于其他资源注册方法,它的返回值是根组件实例而非应用实例。在我们的 uniapp 项目中, 没有找到对 mount 的调用, 后面学 uniapp 指定教程应该会知道怎么回事.这些好像都不太重要. 重点应该是 vue 的语法.Attribute 绑定指令指示 Vue 将元素的idattribute 与组件的dynamicId属性保持一致。
2024-09-09 16:31:44
479
原创 20240909uniapp学习工作-微信小程序-VUE
使用选项式 API 可以用包含多个选项的对象来描述组件的逻辑, 例如 data、methods 和 mounted.选项所定义的属性都会暴露在函数内部的 this 上, 它会指向当前的组件实例.一种类似 HTML 格式的文件, 称为单文件组件, 也称为 *.vue 文件. vue 的单文件组件会将一个组件的逻辑 javascript,模板html和样式css封装在同一个文件里.vue 的组件可以按两种不同的风格书写: 选项是 API 和 组合式 API, 我的项目用的是选项式, 组合式有需要再看.
2024-09-09 14:15:44
466
原创 20240906uniapp学习工作-微信小程序
Page 是一个页面构造器, 这个构造器生成了一个页面. 在生成页面的时候, 小程序框架会把 data 数据和 index.wxml 一起渲染出最终的结构.于是就得到了页面的样子.vue页面文件中的 <template> 中的内容想单股 wxml, <script> 中的内容相当于 js 文件, 我想应该是这样吧, 继续学, 有待验证.通过 {{ }} 的语法把一个变量绑定到界面上,我们称为数据绑定。仅仅通过数据绑定还不够完整的描述状态和界面的关系,还需要。等控制能力,在小程序里边,这些控制能力都用。
2024-09-06 17:07:50
254
原创 20240903uniapp学习工作-JS
如果 JavaScript 语句太长,对其进行折行的最佳位置是某个运算符:这点以前做iOS 安卓开发没太注意var 声明之后,变量是没有值的。(技术上,它的值是undefined。let和const。这两个关键字在 JavaScript 中提供了块作用域()变量(和常量)。在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域和函数作用域。通过var关键词声明的变量没有块作用域。在块{}内声明的变量可以从块之外进行访问。可以使用let。
2024-09-03 17:44:31
1054
原创 20240902uniapp学习工作
如需要全局导入vue组件,即每个页面都可以直接使用而不用引用和注册的话,在项目根目录下的main.js里处理。如下是hello uni-app里的例子。现在template是一级节点,用于写tag组件,script和style是并列的一级节点,也就是有3个一级节点。全局样式,在根目录下的app.vue里写入,每个页面都会加载app.vue里的样式。现在是es6的写法,import引入外部的js模块(注意不是文件)或css;在hello uni-app的common目录有一个工具类。当然还有一些高级的用法。
2024-09-02 17:10:29
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人