当前位置: 首页 > news >正文 go 做视频网站微擎做网站费用 news 2025/11/3 0:11:04 go 做视频网站,微擎做网站费用,宿城网站建设,制作网络网站https://www.jianshu.com/p/c133cb7cac21 讲的不错 命令式UI (how to do) 声明式UI (what to do) what to do 也许有人会说Data Binding不是可以让XML自己动起来吗?没有错#xff0c;Data Binding其实就是Compose诞生之前的一种声明式U方案#xff0c;谷歌曾…https://www.jianshu.com/p/c133cb7cac21 讲的不错 命令式UI (how to do) 声明式UI (what to do) what to do 也许有人会说Data Binding不是可以让XML自己动起来吗?没有错Data Binding其实就是Compose诞生之前的一种声明式U方案谷歌曾经寄希望于通过它来提升U编码效率。 但是Compose推荐Composable使用首字母大写的名词来命名且不允许有返回值。 组合优于继承 Composable fun HelloComposable() { var content by rememberSaveable { mutableStateOf() } HelloContent(content content, onContentChange { content it }) } OptIn(ExperimentalMaterial3Api::class) Composable fun HelloContent(content: String, onContentChange: (String) - Unit) { Column { Text(text Hello $content) OutlinedTextField( value content, onValueChange onContentChange, label { Text(text content) } ) } } // Jetpack Compose 遵循单向数据流原则unidirectional data flow这是一种用于管理状态和数据更新的设计模式特别适合用于构建用户界面。在这种模式下所有的数据更新都应当遵循单个方向的流动这有几个重要的好处 预测性和可理解性: 当数据和状态变化总是以相同的方式流动时应用的行为变得更加可预测和易于理解。这使得开发者更容易追踪数据流理解数据是如何、以及在何处被更新的。 简化状态管理: 在单向数据流中数据和状态的更新通常集中在特定的地点进行管理减少了在应用各处分散更新数据引起的混乱和错误。 容易调试: 由于数据流的一致性当出现问题时更容易定位和修复错误因为开发者可以清晰地了解数据从哪里来以及应该在哪里进行修改。 在代码示例中content是作为单一数据源存在的其值由HelloComposable管理且通过参数传递到HelloContent中。当在OutlinedTextField中进行输入时通过onValueChange事件回调更新外部content的状态从而触发重新渲染或称为重组recomposition过程。由此我们可以看到数据content值是从上层流向下层的而事件用户的输入事件则是从下层流向上层的导致状态更新并触发重组。 这种模式确保了组件的UI始终与其状态保持一致同时也使得状态的更新逻辑变得更加集中和清晰。 // 单一数据源决定了Composable数据流的单向流动数据(content)总是自上而下流动而事件(onContentChange)总是自下而上传递 为什么呢 事件如onContentChange在Jetpack Compose或任何现代UI框架中自下而上传递的概念主要体现在事件处理和状态管理方面。以OutlinedTextField组件中的onValueChange事件为例来解析这一点 事件回调的定义在OutlinedTextField组件中使用onValueChange属性定义了一个事件回调。当用户在文本字段中输入文本时这个回调函数被触发。 状态更新onValueChange通常会被设定为一个更新上层状态的函数即在您的例子中的onContentChange。这意味着当OutlinedTextField中的事件例如文本更改发生时它会调用onContentChange这一回调函数随后可能会更新应用的状态如更新一个由父组件维护的content变量。 自下而上的数据流OutlinedTextField作为较“低”层的组件通过事件如用户输入影响了上层状态通过onContentChange更新content值。尽管UI框架通常采用自上而下的数据流动父组件到子组件的状态传递事件处理却采用自下而上的方式传递即从子组件回到父组件并最终可能引起状态的更新和UI的重新渲染。 响应式UI一旦上层状态如content变量被更新这个改变通过自上而下的数据绑定如value content自动反映回UI更新相应组件的显示内容。这样事件处理和状态管理形成了一个闭环使得UI能夠实时响应用户的操作。 总结来说事件如onValueChange对应的onContentChange自下而上的传递体现在它能够影响并更新上层状态这种机制使得组件能够响应用户的互动而更新的状态又通过数据绑定机制影响UI的显示形成一个连贯的响应链条。 Compose 业务上能做的优化大体上就是这些了。总之我们就是我们要保持组件的颗粒度尽可能的小容易变动的要独立出来非常稳定的也要独立出来尽量使用 Immutable 的数据结构。 如此之后 Compose 的流畅度还是非常不错的。 // 精简代码 编写更少的代码会影响到所有开发阶段作为代码撰写者需要测试和调试的代码会更少出现 bug 的可能性也更小您就可以专注于解决手头的问题作为审核人员或维护人员您需要阅读、理解、审核和维护的代码就更少。 与使用 Android View 系统按钮、列表或动画相比Compose 可让您使用更少的代码实现更多的功能。无论您需要构建什么内容现在需要编写的代码都更少了。以下是我们的一些合作伙伴的感想 // “对于相同的 Button 类代码的体量要小 10 倍。”(Twitter) “使用 RecyclerView 构建的任何屏幕我们的大部分屏幕都使用它构建的大小也显著减小。”(Monzo) ““只需要很少几行代码就可以在应用中创建列表或动画这一点令我们非常满意。对于每项功能我们编写的代码行更少了这让我们能够将更多精力放在为客户提供价值上。”(Cuvva) 编写代码只需要采用 Kotlin而不必拆分成 Kotlin 和 XML 部分“当所有代码都使用同一种语言编写并且通常位于同一文件中而不是在 Kotlin 和 XML 语言之间来回切换时跟踪变得更容易”(Monzo) 无论您要构建什么使用 Compose 编写的代码都很简洁且易于维护。“Compose 的布局系统在概念上更简单因此可以更轻松地推断。查看复杂组件的代码也更轻松。”(Square) —— https://developer.android.google.cn/develop/ui/compose/why-adopt?hlzh-cn 文章转载自: http://www.morning.jqjnx.cn.gov.cn.jqjnx.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.cybch.cn.gov.cn.cybch.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.xhwty.cn.gov.cn.xhwty.cn http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.qqhersx.com.gov.cn.qqhersx.com http://www.morning.qstjr.cn.gov.cn.qstjr.cn http://www.morning.dtlnz.cn.gov.cn.dtlnz.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn http://www.morning.webife.com.gov.cn.webife.com http://www.morning.rjnx.cn.gov.cn.rjnx.cn http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.bwxph.cn.gov.cn.bwxph.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn http://www.morning.rcjwl.cn.gov.cn.rcjwl.cn http://www.morning.qttg.cn.gov.cn.qttg.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.swkzk.cn.gov.cn.swkzk.cn http://www.morning.tgts.cn.gov.cn.tgts.cn http://www.morning.qllcm.cn.gov.cn.qllcm.cn http://www.morning.msxhb.cn.gov.cn.msxhb.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.qwyms.cn.gov.cn.qwyms.cn http://www.morning.nfgbf.cn.gov.cn.nfgbf.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.jprrh.cn.gov.cn.jprrh.cn http://www.morning.bbmx.cn.gov.cn.bbmx.cn http://www.morning.bkkgt.cn.gov.cn.bkkgt.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.wchsx.cn.gov.cn.wchsx.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn http://www.morning.jklns.cn.gov.cn.jklns.cn http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.xlztn.cn.gov.cn.xlztn.cn http://www.morning.dwyyf.cn.gov.cn.dwyyf.cn http://www.morning.fphbz.cn.gov.cn.fphbz.cn http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn http://www.morning.yggwn.cn.gov.cn.yggwn.cn http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn http://www.morning.drfcj.cn.gov.cn.drfcj.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.brnwc.cn.gov.cn.brnwc.cn http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.rwqj.cn.gov.cn.rwqj.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.bgbnc.cn.gov.cn.bgbnc.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.grtwn.cn.gov.cn.grtwn.cn http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn http://www.morning.wiitw.com.gov.cn.wiitw.com http://www.morning.gwwky.cn.gov.cn.gwwky.cn http://www.morning.bwttj.cn.gov.cn.bwttj.cn http://www.morning.xflwq.cn.gov.cn.xflwq.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn http://www.morning.kzyr.cn.gov.cn.kzyr.cn http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn http://www.morning.qllcp.cn.gov.cn.qllcp.cn http://www.morning.yfcbf.cn.gov.cn.yfcbf.cn http://www.morning.txzqf.cn.gov.cn.txzqf.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn 查看全文 http://www.tj-hxxt.cn/news/272259.html 相关文章: 网站开发员岗位职责网站怎么做好 优帮云 网站服务器容器网站建设-信科网络 jquery在网站开发实例运用代理公司注册手续 dw做的网站能直接使用吗a5做网站 建设互联网站机房需要哪些设备东莞专业做网站建设服务 网站页面下载嘉定建站公司 济南搜索引擎优化网站微信小程序游戏修改器 在网站上做教育直播平台多少钱最好的开发网站建设 网站名称搜索不到南通 网站建设 做网站的搜索引擎建设实业公司网站设计模板 腾讯建站官网新手做哪类网站 深圳网站公司招聘网站维护工单 一站式网络营销网站流量工具 咨询聊城做网站拿word如何做网站 响应网站建设门户网站微信服务号建设方案 中国建设银行云南官网站纪念币万户做网站怎么样 做网站的大创结项网站建设江苏百拓 网站建设建站培训wordpress信息流主题 有什么做设计接任务的网站深圳海外医疗网站建设 嘉定专业网站建设国内时事新闻 国家外汇管理局网站怎么做报告怎么自己做网页 计算机网络网站开发二级域名网站免费申请 成都专业的网站设计公司asp做网站简介页面 深圳制作网站推荐wordpress登录工具 大理如何做百度的网站企业推广软文范文 惠州酒店网站建设优秀创意广告设计赏析 在网上找做设计是什么网站番禺做网站多少钱 凡科网站网站建设进不去帮别人做钓鱼网站 禅城网站设计网站建设与管理 教学视频 个体制作网站设计提高网站的权重的最佳方法