小编Mos*_*she的帖子

我可以在.vue文件中使用渲染功能吗

我正在寻找动态设置组件的html标签。例如:

  components: {
    test: {
      props: ['tag', 'attributes'],
      render(createElement) {
        return createElement(this.tag || 'div', {attrs: this.attributes || {}}, this.$slots.default);
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后,我可以在html文件中使用如下代码:

<test tag="a" :attributes="{href:'http://www.google.com'}">a tag content</test>
<test tag="p">p tag content</test>
Run Code Online (Sandbox Code Playgroud)

现在,我想做的就是使用Vue Loader之类的东西拆分组件。基本上,我想将不同的组件拆分成不同的文件,然后使用main.js文件导入它们。

我尝试过类似的方法,但是不起作用:

// components/test.js 
export default {
  components: {
    test: {
      props: ['tag', 'attributes'],
      render(createElement) {
        return createElement(this.tag || 'div', {attrs: this.attributes || {}}, this.$slots.default);
      }
    }
  }
}

// main.js
import Vue from 'vue'  // don't think this is relevant, but it's there
import Test from …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-component vuejs2

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

检查样式组件中是否存在道具

我刚刚开始使用样式组件,并希望为按钮、导航栏等内容创建变体。

例如,我想创建一个深色版本的导航栏(其中背景颜色会变暗,文本颜色会变亮)。

我想要做的只是在组件上添加一个黑暗道具,如下所示:

<Navbar dark>...</Navbar>
Run Code Online (Sandbox Code Playgroud)

我想这样做而不是这样:

<Navbar type="dark">...</Navbar>
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何执行此操作。也就是说,如何仅通过检查道具名称是否存在来设置元素的样式(而不向道具传递任何值)?

有任何想法吗?提前致谢。

reactjs styled-components css-in-js

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

使用 ReactJS 将插件添加到 CKEditor5 的自定义构建中

我正在尝试向 CKEditor5 的经典版本添加一个插件。我已按照此页面上的说明进行操作: https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html

我可以说我已经正确完成了所有事情,因为当我打开sample/index.html.

现在是时候将此自定义构建与我的 React 应用程序集成了。

此页面上的说明“描述”了要做什么:

您将在项目旁边的某个位置创建一个新构建,并将其包含在内,就像包含现有构建之一一样。

它说“像包含现有版本之一一样包含它”。好吧,这就是我包含经典构建的方式:

import React from "react";
import ReactDOM from "react-dom";
import CKEditor from "@ckeditor/ckeditor5-react";
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";

import "./styles.css";

function App() {
  return (
    <div className="App">
      <CKEditor
        editor={ClassicEditor}
        // Other Props
        }}
      />
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Run Code Online (Sandbox Code Playgroud)

所以,我假设我会做这样的事情:

import React from "react";
import ReactDOM from "react-dom";
import CKEditor from "@ckeditor/ckeditor5-react";
import ClassicEditor from './ckeditor/ckeditor'


import "./styles.css";

function App() {
  return ( …
Run Code Online (Sandbox Code Playgroud)

ckeditor reactjs ckeditor5

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

使用 Sapper 设置 Firestore

我试图找出使用sapper设置 firestore 的最佳方法。我特别询问工兵(不是苗条)。

关于这个主题的教程很少,我看到的那些我不确定。它们涉及修改 template.html 文件——我不确定这是否是一个好主意。

因此,简而言之,我想知道将 firestore 与工兵同步的最佳实践是什么。

有任何想法吗?

谢谢。

svelte google-cloud-firestore sapper svelte-3

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

无法在 Gatsby 站点的 GraphQL 中格式化日期

我在 Gatsby 中格式化日期时遇到问题。我从firestore获取了一些数据。我获取的字段之一被称为datePublished,它包含一个时间戳形式的数字(例如,1576945502000)。事实上,它确实是一个时间戳,但它以number格式类型保存到 firestore 。

现在,我想datePublished使用formatStringgraphql 中的函数来格式化该字段——如此处所述:https ://www.gatsbyjs.org/docs/graphql-reference/#dates

但我无法让格式工作。无论我尝试在 graphiql 中还是在我的网站上格式化字符串,它都不起作用。这是我尝试过的代码:

query MyQuery {
  allNewsFeed {
    edges {
      node {
        published(formatString:"dddd Mo, YYYY")
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我在 graphiql 中得到的错误消息:

“NewsFeed”类型的字段“datePublished”上的未知参数“formatString”。

如果我深入挖掘,我会注意到 firestore 中的字段类型被列为,number并且在 graphiql 文档资源管理器中它被列为FloatQueryOperatorInput.

更重要的是,我做了一个小实验,我尝试为同一个号码保存为一个stringnumbertimestamp在公司的FireStore。无论是字符串还是数字格式都不起作用,无论出于何种原因,gatsby-firesource插件都不会使用timestamp格式。

所以我想知道,我该怎么做才能让它在 gatsby 中工作?

有任何想法吗?

谢谢。

firebase graphql gatsby google-cloud-firestore

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

更改 NextJS 中配置文件的位置

在一个典型的 nextjs 项目中,我发现自己有许多根级配置文件:

  • tsconfig.json
  • next.config.js
  • 下一个 seo-config.ts
  • .eslintrc
  • ETC...

我想清理我的根目录并将这些文件移动到它们自己的目录中。特别是,我想创建一个config目录来存放上述文件。

这在nextjs中可能吗?如果是这样,我该怎么办?

谢谢。

javascript node.js reactjs package.json next.js

5
推荐指数
0
解决办法
216
查看次数

VueJS 2.0:使用 V-if 检查自定义 Prop 是否存在

我使用 VueJS 2.0 创建了一个自定义模式组件,其属性为“close”。我基本上让它按照我想要的方式工作,但想稍微改进一下。

我拥有的一项功能是可以选择添加关闭按钮,如下所示:

在 HTML 中添加 close="true" 的自定义属性

<modal close="true">
Etc...
</modal>
Run Code Online (Sandbox Code Playgroud)

在JS文件中使用V-IF条件语句

<button v-if="close == 'true'></button>
Run Code Online (Sandbox Code Playgroud)

结果是,如果 close 属性设置为 true,则关闭按钮出现,否则不会出现。这就是我想要的并且有效。

我的问题是我可以简化这个解决方案,以便我可以简单地设置 html 如下: <modal close>...</modal>

然后我会简单地检查 close 属性是否存在。我尝试使用 来执行此操作<button v-if="close"></button>,但没有成功。

所以,我想知道这是否可能以及(如果可以)如何做到。

预先感谢您可以提供的任何帮助。

javascript vue.js vue-component vuejs2

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

在样式组件中扩展组件时更改标记类型

我有一个称为样式化组件的组件Headline,我希望使用另一个名为SubHeadline. 现在,Headline看起来像这样:

const Headline = styled.h2`
// Css styles go here
`
Run Code Online (Sandbox Code Playgroud)

我想做的是扩展标题的样式并将标签类型更改为其他类型(例如 h3)。像这样的东西:

const SubHeadline = styled(Headline).h3`
// Css styles go here
`
Run Code Online (Sandbox Code Playgroud)

现在以上不起作用,但它说明了我想做的事情。

关于如何做到这一点的任何想法?

reactjs styled-components

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

导入ES6:为软件包指定别名

请查看以下导入声明:

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
Run Code Online (Sandbox Code Playgroud)

是否可以为要导入的软件包的名称提供别名-即在这种情况下为@fortawesome/react-fontawesome。这样,我不必每次都写出整个项目名称。

为了清楚起见,我正在寻找最终结果,我可以执行以下操作:

import { FontAwesomeIcon } from 'fa'
Run Code Online (Sandbox Code Playgroud)

或这个

import { FontAwesomeIcon } from '@custom/fa'
Run Code Online (Sandbox Code Playgroud)

我使用fa(或@custom/fa)创建的名称引用了实际的@fortawesome/react-fontawesome库。

这可能吗?如果是这样,怎么办?

javascript import ecmascript-6

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

如何在 Vuetify 中使 Appbar 背景颜色透明

我不知道如何使vuetify 中的应用程序栏透明。我尝试添加该属性color="transparent",但没有成功。我尝试过color="rgba(0,0,0, 0)",但没有成功。我尝试过color="shades.transparent"——但这也行不通。

我想不通。知道如何实现这一点吗?

谢谢。

vuetify.js

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