input绑定数据遇到的问题
虽然是一个很简单的功能,但是不能用本地测试,这时候就会出现问题,我在这个问题上卡了一阵子,很是不舒服,写出来,让大家引以为戒,节约大家的时间。
<input type="text" model:value="{{info}}" placeholder="请输入参数"/>
<text class="title">{{ info }}</text>
private: {
title: '下面的input输入的信息理论上要单独的显示',
info:''
},
http://192.168.1.8:8080/
访问后可以看到对应的【调试器】打开web预览。
下面就是具体的示例,但是没有绑定上。
解决方案
上面的示例中我们用的是浏览器测试的,结果是没有双向绑定成功,我就一直在找问题,后来特别难受的找不到,无意的用服务器跑了一下,发现,数据是可以呈现的。
真机效果:
可以看到我们已经绑定成功了呢。
vue双向绑定原理
双向数据绑定的原理:
采用“数据劫持”结合“发布者-订阅者”模式的方式,通过【object.defineproperty()】方法来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
模型(Model)表示应用程序的数据和业务逻辑。这可以是从后端API获取的数据,或者在前端应用程序内部定义的数据。
视图(View)是用户界面的可见部分,通常以HTML模板的形式存在。它负责将数据呈现给用户,并处理用户的输入事件。
视图模型(ViewModel)是模型和视图之间的中间层,它负责管理视图所需的数据,并处理视图中发生的事件。视图模型通过双向数据绑定将模型的状态与视图保持同步。
MVVM即是【Model-View-ViewModel】,它是一种设计模式,用于实现用户界面的分离和交互。
View中视图变化,通过ViewModel中的监听器反馈给model进行数据的更新。
Model中数据的变化,通过ViewModel中的解析器反馈给View进行视图的更新。
vivo 发布自研操作系统蓝河 (BlueOS),系统框架采用 Rust 编写
Rust 是一种系统编程语言,由 Mozilla 开发和维护,最初由 Graydon Hoare 开发,并在 2009 年被 Mozilla 赞助。Rust 语言的设计目标是提供一种安全、高效、并发的编程语言,同时保持语言的简单性和易用性。Rust 语言的特点包括内存安全性、类型安全、并发安全等,能够避免常见的内存安全问题,如空指针引用、缓冲区溢出等。Rust 语言的并发性强,提供了一些并发编程的原语,例如通道和锁,使得编写高效的并发程序更加容易。Rust 语言的高性能是由其内存安全性和并发性强所决定的,它可以有效地优化程序的性能并提高程序的执行效率。
蓝河操作系统采用 Rust 编写「系统框架」——从源头避免了内存使用不当引起的安全漏洞。据称是行业首家。