整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法



文实例讲述了VUE直接通过JS修改html对象的值导致没有更新到数据中解决方法。分享给大家供大家参考,具体如下:

业务场景

我们在使用vue编写代码时,我们有一个多行文本框控件,希望在页面点击一个按钮在文本框焦点位置插入一个{pk}的数据。

发现插入这个数据后,这个数据并没有同步到数据中,但是直接通过键盘输入,就可以改变数据。

原因分析

在通过JS修改控件的value数据后,并没有触发到数据更新。

解决办法


当文本框获取焦点时,我们发布一个myfocus控件,我们在使用这个控件的时候。


编写一个getTextarea的方法。


这里将文本框控件,抛出来,我们可以通过js代码修改这个控件的value。


通过这个代码我们往焦点处插入我们的代码。

当文本框失去焦点时,将当前控件的值作为input事件进行发布,从而实现了数据的同步。

希望本文所述对大家vue.js程序设计有所帮助。

JSS是CSS的创作工具,它允许你使用JavaScript以声明,无冲突和可重用的方式描述样式。它可以在浏览器,服务器端或在构建时在Node中编译。JSS与框架无关。它由多个包组成:核心部分,插件以及框架集成等。



Github

https://github.com/cssinjs/jss stars:5.1k


快速开始

如果你已经对使用JSS感兴趣,可以使用在线代码编辑器。在CodeSandbox(一个非常实用的在线编辑器,可以用来学习各种编程技能)上尝试Hello World示例。以下是三种不同框架下的用法(代码图片生成自carbon网站):

  • JSS


  • React-JSS


  • Styled-JSS


特性

  • 真实的CSS

JSS生成实际的CSS,而不是内联样式。它支持每个现有的CSS功能。CSS规则只创建一次,并使用其类名与元素重复使用,与内联样式相反。此外,当DOM元素更新时,将应用先前创建的CSS规则。

  • 无冲突选择器

JSS默认生成唯一的类名。它允许避免典型的CSS问题,默认情况下一切都是全局的。它完全消除了命名约定的需要。

  • 代码重用

使用JavaScript作为宿主语言使我们有机会以常规CSS无法实现的方式重用CSS规则。您可以利用JavaScript模块,变量,函数,数学运算等。如果做得好,它仍然可以完全声明。

  • 易于拆卸和修改

CSS规则的明确使用允许您跟踪消费者并确定是否可以安全地删除或修改它。

  • 动态Style

使用JavaScript函数和Observable可以在浏览器中动态生成样式,使有机会访问应用程序状态,浏览器API或远程数据以进行样式设置。你不仅可以定义一次样式,还可以在任何时间点以有效的方式更新样式。

  • 用户控制的动画

JSS可以高效地处理CSS更新,可以使用它创建复杂的动画。使用函数值,Observables并将它们与CSS过渡相结合,可以为用户控制的动画提供最大的性能。对于预定义的动画,使用@keyframes和transition更好,因为它们将完全取消阻止JavaScript线程。

  • 关键的CSS

要优化第一次绘制的时间,你可以使用服务器端渲染并提取关键CSS。可以将CSS的呈现与HTML的呈现结合起来,这样就不会生成未使用的CSS。它将导致在服务器端呈现期间提取的最小关键CSS,并允许内联它。

  • 插件

JSS核心实现了基于插件的架构。它允许您创建可以实现自定义语法或其他强大功能的自定义插件。JSS有许多官方插件,可以单独安装或使用默认预设。社区插件的一个很好的例子是jss-rtl。

  • Expressive 语法

由于各种插件,JSS允许您使用现有的全局类名来嵌套,全局选择器和组合。例如,允许您以比CSS更可读的方式表达属性。如果要直接从浏览器开发工具复制粘贴样式,也可以使用模板字符串。jss-plugin-expandbox-shadow

  • 完全隔离

另一个有用的插件示例是,它允许您完全隔离元素与全局级联规则,并可能覆盖不需要的属性。在创建应该在第三方文档内部呈现的窗口小部件时尤其有用。jss-plugin-isolate

  • React整合。

React-JSS包提供了一些额外的功能:

  1. 动态主题 - 允许基于上下文的主题传播和运行时更新。
  2. 关键CSS提取 - 仅提取渲染组件中的CSS。
  3. 延迟评估 - 样式表在组件安装时创建。
  4. 样式表的静态部分在所有元素之间共享。
  5. 使用props作为参数自动更新函数值和规则。
  • JavaScript构建管道

CSS不需要额外的构建管道配置。无论你选择构建JavaScript的工具是什么,它都可以与JSS一起使用。

安装使用

yarn add jss

yarn add jss-preset-default //使用默认设置

import jss from 'jss'
import preset from 'jss-preset-default'
jss.setup(preset())
// 创造你的style.
const style = {
 myButton: {
 color: 'green'
 }
}
//编译样式,应用插件。
const sheet = jss.createStyleSheet(style)
//如果要在客户端上呈现,请将其插入DOM。
sheet.attach()
//如果要渲染服务器端,请获取CSS文本。
sheet.toString()

  • 使用自定义插件进行设置
import jss from 'jss'
import camelCase from 'jss-plugin-camel-case'
import somePlugin from 'jss-some-plugin'
//使用插件。
jss.use(camelCase(), somePlugin())
// Create your style.
const style = {
 myButton: {
 color: 'green'
 }
}
//编译样式,应用插件。
const sheet = jss.createStyleSheet(style)
// 如果要在客户端上呈现,请将其插入DOM
sheet.attach()
// 如果要渲染服务器端,请获取CSS文本。
sheet.toString()

  • 指定DOM插入点
<head>
 <title>JSS</title>
 <!-- 自定义插入点 -->
</head>

import jss from 'jss'
jss.setup({insertionPoint: 'custom-insertion-point'})

<head>
 <title>JSS in body</title>
</head>
<body>
 <div id="insertion-point">
 这可能是你选择的任何DOM节点,可以作为插入点。
 </div>
</body

import jss from 'jss'
jss.setup({
 insertionPoint: document.getElementById('insertion-point')
})

简单案例

通过两张图片来体验:




总结

JSS的功能是十分强大的,不仅仅让写css的方式放到了JavaScript,这样对更加喜爱编写javascript的小伙伴来说是值得尝试的,而且还支持服务器端渲染等更多高级的特性,前端技术百花齐放,但目前仍然不变的是掌握JavaScript者得天下的时代!

ue 3 是一个渐进式增强型 JavaScript 框架,用于构建用户界面。它提供了许多新功能和特性,旨在提高性能、降低复杂性和改进开发人员体验。

主要更新

Composition API

Composition API 是一种新的响应式数据管理方式,它提供了更大的灵活性 and 代码的可重用性。它使用 setup 函数来定义组件的逻辑,并可以使用 reactive、ref 和 computed 等 API 来创建响应式数据 and 计算属性。

Composition API 的优点:

更灵活:可以使用更函数式的方式来编写组件逻辑。

代码可重用性更高:可以更容易地创建可重用的组件逻辑。

更易于测试:更容易地测试组件逻辑。

Reactivity System

Vue 3 使用了一个新的响应式系统,它更加高效 and 可扩展。它使用 Proxy API 来跟踪数据的变化,并使用高效的算法来更新视图。

Reactivity System 的优点:

更高效:比 Vue 2 的响应式系统更加高效。

更可扩展:可以支持更加复杂的数据结构。

更易于理解:更容易理解响应式系统的运作机制。

TypeScript 支持

Vue 3 对 TypeScript 提供了更好的支持,使代码更加类型安全 and 易于维护。可以使用 TypeScript 类型来定义组件的 props、data 和 methods,并可以使用 TypeScript 编译器来检查代码的类型错误。

TypeScript 支持的优点:

代码更加类型安全:可以防止类型错误,提高代码的可靠性。

代码更易于维护:更容易理解代码的逻辑。

开发效率更高:可以使用 TypeScript 的一些特性来提高开发效率。

其他更新

Tree Shaking: Vue 3 使用 Tree Shaking 技术来减少最终代码包的大小。Tree Shaking 会自动删除未使用的代码,从而减小代码包的大小。

Virtual DOM: Vue 3 优化了 Virtual DOM 算法,提高了渲染性能。Virtual DOM 是 Vue 用于更新视图的一种技术。

全局 API: Vue 3 提供了一些全局 API,例如 reactive、computed 和 watchEffect,用于创建响应式数据 and 计算属性。

其他知识点

ref: ref 用来创建响应式引用,可以引用 DOM 元素或其他值。

watch: watch 用来监视响应式数据的变化,并执行相应的回调函数。

provide/inject: provide/inject 用来在组件之间共享数据,而无需使用 props 或 events。

路由