移动端项目实践方法提炼知识总结

简介: 移动端项目实践方法提炼知识总结

前言:在主页中,通过按钮点击,以弹层组件来展示频道管理页,具体的频道管理管理功能由这个页面来决定。

image.png

1.总体认知:


搭结构,先做基本的页面样式,再做功能。能封装就封装,复杂功能拆分成一个个分支组件

2 我要实现的效果是


让登陆用户可以订制(添加或者删除)自已订阅的频道

3.大体:


在主页中,通过点击按钮,以弹层组件来展示频道管理页,具体的频道管理功能由这个页面来决定。

:第一步,在home页添加一个按钮和一个弹层,点击按钮,显示弹层。弹层内容的显示使用组件来装

第二步,进行布局

第三步,数据绑定,将数据渲染到页面上 (使用计算属性做数组的减法)

4 主要技术点【摘要-下面会具体介绍】


1.调接口---还是封装到单独文件中,之后使用时调用

2.渲染数据 ------一般套路是掉接口,拿到返回数据,定义数组接受数据--v-for渲染到页面

3.计算属性 ---可以v-for计算属性名

5.子传父、父传子 --组件通信少的情况用这个,如果很多的话用vuex

6.不同组件之间的传参(参数给请求函数用之类的,如传递下标,id)

7.vue不允许在子组件中直接修改父组件传入的props。但是可以通过修改引用类型修改--堆栈--间接

8-bug修复--在删除频道 时,如果下标在当前频道之前,则去更新父组件的中active


9-数组做减法


10-简单逻辑判断下的代码写法:1.在template中@click=‘可以写简单的逻辑代码’,还有其他的如v-if等。2.还有如: 你好? ‘好’:‘不好’  3.还有如  a = 1 || 0 具体问题具体分析,但此种方法很简便


11-请求方式的总结--除get、post外的其他方式介绍


12-请求预检 --如option


13-简单类型,复杂类型的说明,及修改后造成的影响--牵扯堆栈--堆栈就完了?--必须更深一层分析


14-动态class利用布尔值,显示某个类


15-路由,插槽和动态组件,简单理解--插槽传结构,动态组件传数据没有地址切换页面局部切换,路由是地址的切换


16,人为的丢错误:自定义错误--throw new Error

总结:今天最重要的就是组件之间的传值

数组做减法-在项目中的实际应用


image.png

场景 当点击区块链,可选频道的区块链消失,添加到我的频道中,目前已知后端会发一个总的数据,以及我的频道数据,那么,可选频道的数据就是后台发回来的总数据减去我的频道的总数据,他们都存在数组中,所以我们要做数组的减法得到新的数据,把它渲染到可选频道中。思路可以是数组减完后保存到新的数组再v-for渲染,但这里使用计算属性更加的简单高效酷炫。同时,计算属性的名字竟可以当做v-for的数组名使用。数组相减的实现。大数组使用fil

// const allChannels = [{ id: 0, name: 'a' }, { id: 1, name: 'b' }]
// const channels = [{ id: 1, name: 'b' }]
export const arrSub = (allChannels, channels) => {
  // return allChannels - channels
  // 开始代码
  // 做减法
  // 从大数组中,选出一些元素(没有在小数组中出现过)
  const res = []
  // 1. 对大数组中的每一元素
  allChannels.forEach((item) => {
    // 如果item 没有在小数组中出现过: item.id与小数组中所有元素的id都不相同
    const idx = channels.findIndex(it => {
      if (it.id === item.id) {
        return true
      }
    })
    // 找不到,就添加
    if (idx === -1) {
      res.push(item)
    }
  })
  return res  //这个方法是保存到数组中,再渲染到页面。
}
// const result = arrSub(allChannels, channels)
// console.log(result) // [{id:0, name:'a'}]
----------------------第二种,filiter+findIndex-----------------

子传父,不通知父组件,直接修改。----复杂类型的


在js中,分为复杂类型和简单类型。复杂类型的数据保存在堆中,引用地址保存在栈中,如引用地址可以有一个或多个,每修改其中一个引用地址就会改变数据,在vue中同样可以利用这一点,通过改变引用地址修改父组件里面的数据。


结论:1.vue不允许在子组件中直接修改父组件传入的props  


          2.如果从父组件中传入的props是引用数据类型(数组,对象),则在子组件中可以通过数组提供的api(push,slice......) 来间接修改props的值【必须是可以改变原数组的方法】

vue2中不能监控数据变化的两种情况


data (){
  return {
    arr:[1],
    obj:{a:1}
  }
}
arr[0] = 2 // 这里不会触发视图的变化
obj.b = 2  // 这里不会触发视图的变化
用this.$set(对象,属性名,值) 就会有响应式的效果


相关文章
|
4月前
|
智能设计 UED
Dooring低代码关于辅助设计的思考和实践
Dooring低代码关于辅助设计的思考和实践
57 0
|
20天前
|
资源调度 数据可视化 JavaScript
一个高效的低代码表单,可视化设计,一键生成源码,享受更多摸鱼时间!
Variant Form 是一款基于 Vue 2 的低代码表单生成器,采用可视化拖拽设计界面,支持一键生成完整源码,大幅降低开发复杂度。它具备高度自定义配置能力,能够满足不同场景需求,并且完全开源免费。通过简单的拖拽操作,用户可以轻松创建表单,同时还能自定义 CSS 样式、校验逻辑及多语言支持等功能。安装便捷,兼容多种环境,极大提升开发效率。赶紧试试 Variant Form,享受高效开发的乐趣吧!
35 0
|
2月前
|
算法 安全 数据安全/隐私保护
一对一语音视频交友系统开发详细指南丨案例设计丨功能需求丨方案逻辑丨项目流程丨源码教程
一对一语音视频交友系统开发指的是开发一种用于让用户通过语音和视频进行一对一交流的交友系统。该系统旨在提供一个平台,让用户可以通过语音和视频相互了解、交流和建立关系。以下是一对一语音视频交友系统开发的一些关键特点:
|
4月前
|
前端开发 数据可视化 搜索推荐
数据驱动的前端设计与开发实践
本文将介绍如何在前端设计与开发中充分利用数据驱动的方法,通过数据分析、用户行为追踪和可视化等手段,指导前端界面设计和功能开发,提高用户体验和产品质量。
|
存储 运维 NoSQL
如何撰写好的技术方案设计-真实案例干货分享
如何撰写好的技术方案设计-真实案例干货分享
558 0
|
缓存 前端开发 NoSQL
直播拍卖软件开发现成源码,技术栈结构选择
在本文中,我们将深入探讨“东莞梦幻网络科技”出售的直播拍卖APP的技术架构,包括后台开发框架、前端界面、iOS和Android开发语言、数据库选择、实时流传输系统以及缓存技术的选择。这些关键组件相互协作,共同构建了一个高性能、稳定可靠的直播拍卖平台。
|
机器学习/深度学习 SQL 人工智能
应用开发者的疑问:大模型是真正的银弹吗?
通过本文作者想和大家简单讨论下大模型的局限以及真正的适用场景。
83978 30
应用开发者的疑问:大模型是真正的银弹吗?
|
前端开发
「前端经验总结」大型业务项目中,前端如何撰写设计文档
设计文档可以帮助开发梳理业务功能,呈现优质的开发思维的载体。另外,当开发思路逐渐丰富,开发速度也就提上来了。所以本篇分享笔者前端的开发中尤其是大型业务项目,是如何撰写设计文档的。
1302 1
|
数据可视化 测试技术
教你如何做原型设计
教你如何做原型设计
173 0
教你如何做原型设计
|
存储 缓存 监控
团队的技术方案设计模板
大家参考我这个方案设计模板(提纲)和相关介绍来做自己的方案设计的时候,可以根据自己的实际业务情况和背景做相关目录的删减,最后得出自己最终的方案设计,然后再去进行方案评审。