小编Dan*_*ton的帖子

如何在 VueJS 模板中声明具有动态名称和动态组件的插槽列表?

假设我有一个包含数据的组件:

data: function () {
  return {
    slots: [
      { Id: 1, slotName: 'apple', componentName: 'Apple' },
      { Id: 2, slotName: 'banana', componentName: 'Banana' }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我想将插槽列表作为作用域插槽传递给子组件。以下语法不起作用,因为您不能在模板元素上使用 v-for:

<child-component>
    <template v-for="slot in slots" :key="slot.Id" v-slot[slot.slotName]="slotProps">
        <component :is="slot.componentName" :someProp="slotProps"></component>
    </template>
</child-component>
Run Code Online (Sandbox Code Playgroud)

并且以下语法将不起作用,因为在 Vue 2.6.0+ 中any content not wrapped in a <template> using v-slot is assumed to be for the default slot

<child-component>
    <component v-for="slot in slots" :key="slot.Id"
        :is="slot.componentName" v-slot[slot.slotName]="slotProps" :someProp="slotProps"></component>
</child-component>
Run Code Online (Sandbox Code Playgroud)

以下起作用,但编译器会抛出警告并使用不推荐使用的语法:

<child-component>
    <component v-for="slot …
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs2

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

使用 Webpack 动态导入命名导出

使用webpack,如果我想对整个模块进行代码拆分,我可以更改

import Module from 'module'

在我的文件顶部

import('module').then(Module => {...

当我需要使用模块 ( docs ) 时。是否有可能做到这一点,但只有一个命名的导出?也就是说,我怎么能对以下内容进行代码拆分:

import {namedExport} from 'module'

javascript webpack code-splitting

13
推荐指数
1
解决办法
4852
查看次数

如何在 PWA 共享目标中离线处理图像?

我可以将我的 Progressive Web App 注册为图像共享目标Chrome Android 76 支持):

"share_target": {
    "action": "/share-target",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "files": [
        {
          "name": "myImage",
          "accept": ["image/jpeg", "image/png"]
        }
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后,我可以拦截在 Service Worker 中将图像共享到应用程序的尝试:

self.addEventListener('fetch', e => {
  if (e.request.method === 'POST' && e.request.url.endsWith('/share-target')) {
    // todo
  }
})
Run Code Online (Sandbox Code Playgroud)

如何在我的离线 PWA 中显示共享图像?

javascript service-worker progressive-web-apps

8
推荐指数
1
解决办法
3276
查看次数

如何验证 Azure Blob 存储共享访问签名 (SAS) URL?

我的应用程序允许用户输入 Azure Blob 存储 SAS URL。我将如何去验证它?我正在使用Azure 存储 Blob 客户端库,并且似乎没有任何方法可以在不实际执行 Blob 操作(我不想这样做)的情况下验证 SAS URL。

验证操作可以是异步的,并在必要时涉及 API 调用(即可以通过按钮触发)。

public class SASURLValidator
{
    public async Task<bool> ValidateSASURL(string sasURL)
    {
        // What goes here?
    }

    public async Task Test()
    {
        var result = await ValidateSASURL("https://blobstorageaccountname.blob.core.windows.net/containerName?sp=w&st=2022-02-15T02:07:49Z&se=2022-03-15T10:07:49Z&spr=https&sv=2020-08-04&sr=c&sig=JDFJEF342JDSFJIERJsdjfkajiwSKDFJIQWJIFJSKDFJWE%3D")
        // result should be true if the above is a valid SAS
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# azure-storage azure-blob-storage shared-access-signatures

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

响应式布局,大屏幕上每行 3 个项目,小屏幕上每行 1 个项目

我想在较大的屏幕上将 3 个宽度相等的项目放置在一行中,拉伸项目以填充可用空间。

单行包含 3 个项目的布局

但是,当项目宽度小于 200px 时,我想将它们全部显示在单列中。

3 个项目堆叠在一起的布局

我不想每行有 2 个项目。任何简单的 CSS 解决方案(例如 CSS flexbox 或 CSS grid)都是可以接受的。

以下代码不正确,因为它有时每行显示 2 个项目。

.item {
  height: 200px;
  background-color: blue;
}

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 1rem;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

css layout responsive-design

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