小编kev*_*201的帖子

为什么使用 toRef(props) 以及在 CompositionAPI 中更改它们的值是个好主意吗?

我经常在 CompositionAPI 中看到一种使用 props 的模式,即使用 toRefs 来创建 props 的所有条目ref。我对此有点困惑。

例如,来自 Vue 3 官方指南:

export default {
  props: {
    user: {
      type: String,
      required: true
    }
  },
  setup(props) {
    const { user } = toRefs(props)

    //... use user's value
  }
}
Run Code Online (Sandbox Code Playgroud)

我有两个场景的两个问题:

  1. 当 props.user 已经是反应性的时,
    如果它在任何祖先中发生变化,它的值也会改变,那么为什么我们需要使用toRefs?不是已经反应过来了吗?

  2. 如果它不是响应式的,那么它只是一个原始字符串值。
    使其响应式是否意味着我们要更改它的值?我认为使对象具有反应性也意味着它的值值得改变。但所有指南和 linter 都警告我们最好不要更改 props 值。(不要写入计算值或其他值)

如果我可以直接在组件中更改 props 值,我不再需要每次都向父组件发出更改。这很方便,但我不知道在我们确定它变为反应性后,何时更改 props 值是个好主意?

javascript vue.js vuejs3 vue-composition-api

5
推荐指数
1
解决办法
9875
查看次数

如何在Rails7中使用importmap来固定npm、yarn包?

我很高兴能够使用 Rails7,尤其是我们终于摆脱了 webpacker。然而,今天当我尝试尝试 Rails7 时,我不再了解如何捆绑 javascript 脚本......并且那里没有教程或者我只是找不到它。

例如,我想导入 jquery 所以我运行

yarn add jquery
Run Code Online (Sandbox Code Playgroud)

然后我写道:

// application.js
//importmap-rails
import "@hotwired/turbo-rails"
import "controllers"
import jquery from 'jquery'
Run Code Online (Sandbox Code Playgroud)

但它不起作用,然后我阅读了importmap-rails上的自述文件,然后运行

./bin/importmap pin jquery
Run Code Online (Sandbox Code Playgroud)

然后它添加了一行config/importmap.rb

pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.6.0/dist/jquery.js"
Run Code Online (Sandbox Code Playgroud)

它有效,但是,这并不是我所期望的。我希望 jquery 来自node_modules/而不是 CDN

我怎样才能做到这一点?导入我从yarn/npm安装的npm包?或者只是指出我在哪里可以找到有关如何在 Rails7 中使用 javascript 的文档?

import-maps ruby-on-rails-7

4
推荐指数
1
解决办法
7749
查看次数

Ruby 的 File.exists 变得不区分大小写?

真的很奇怪,当我使用 File.exist 时?或 File.exists?我发现它不区分大小写?

2.7.0-preview1 :001 > Dir.entries('.')
 => [".", "..", "ppp", "FOO", "Bar"] 
2.7.0-preview1 :002 > File.exist? "foo"
 => true 
2.7.0-preview1 :003 > File.exist? "FOO"
 => true 
2.7.0-preview1 :004 > File.exist? "FOOBAR"
 => false 
2.7.0-preview1 :005 > File.exists? "FOO"
 => true 
2.7.0-preview1 :006 > File.exists? "foo"
 => true 
Run Code Online (Sandbox Code Playgroud)

我如何做区分大小写的 File.exist?? 我使用的是 macOS Catalina 10.15.3


更新

对于@Stefan 问题:我为什么要问这个问题,我只是在练习本书中的代码片段 - Ruby Cookbook ver.2,配方是批量重命名文件,如下所示:

require 'find'

module Find
  def rename(*paths)
    unrenamable = []
    find(*paths) do |file|
      next unless File.file? file # skip …
Run Code Online (Sandbox Code Playgroud)

ruby

2
推荐指数
1
解决办法
258
查看次数

sidekiq 的任务是否有任何“组异步等待”?

像 javascript 的 Promise.all 可以等待所有请求完成,然后执行以下工作。

例如,我有 A、B、C 任务:

C 需要 A 和 B 都完成运行并使用 A 和 B 计算的结果。

(因为 3 个进程都是非常昂贵的计算,所以它们被放在 sidekiq 队列中运行)

ruby ruby-on-rails sidekiq

0
推荐指数
1
解决办法
172
查看次数