我不明白为什么以及在什么情况下这将被使用..
我当前的Web设置包含许多组件,这些组件只是函数或工厂函数,每个组件都在自己的文件中,每个函数都"骑"到app命名空间,如:app.component.breadcrumbs = function(){...等等.
然后GULP只是组合了所有文件,最后我得到了一个文件,所以页面控制器(每个"页面"都有一个加载页面所需组件的控制器)可以加载它的组件,如:app.component.breadcrumbs(data).
所有组件都可以按需轻松访问,单个javascript文件可以很好地缓存所有内容.这种工作方式似乎非常好,从未发现这种工作方式存在任何问题.当然,这可以(并且是)很好地缩放.
那么ES6如何为功能输入比我描述的更好?
导入函数的处理是什么,而不是仅将它们附加到App的命名空间?让他们"依恋"更有意义.
/dist/app.js // web app namespace and so on
/dist/components/breadcrumbs.js // some component
/dist/components/header.js // some component
/dist/components/sidemenu.js // some component
/dist/pages/homepage.js // home page controller
// GULP concat all above to
/js/app.js // this file is what is downloaded
Run Code Online (Sandbox Code Playgroud)
homepage.js看起来像这样:app.routes.homepage = function(){
"use strict";
var DOM = { page : $('#page') };
// append whatever components I want to this page
DOM.page.append(
app.component.header(),
app.component.sidemenu(), …Run Code Online (Sandbox Code Playgroud) 如何检查一个数字是否在数字中(其中的任何位置)出现多次?
输入数字示例:
1, 10, 11, 1010, 1981
Run Code Online (Sandbox Code Playgroud)
输出应该告诉其中哪些有重复的数字:
false, false, true, true, true
Run Code Online (Sandbox Code Playgroud)
我正在尝试为我的UI项目之一使用本机Web组件,并且对于此项目,我没有使用任何框架或库(例如Polymer等)。我想知道在两者之间有什么最佳的交流方式或其他方式像我们在angularjs / angular中所做的那样的Web组件(例如消息总线概念)。
当前,在UI Web组件中,我正在使用dispatchevent发布数据和接收数据,正在使用addeventlistener。例如,有2个Web组件,ChatForm和ChatHistory。
// chatform webcomponent on submit text, publish chattext data
this.dispatchEvent(new CustomEvent('chatText', {detail: chattext}));
// chathistory webcomponent, receive chattext data and append it to chat list
this.chatFormEle.addEventListener('chatText', (v) => {console.log(v.detail);});
Run Code Online (Sandbox Code Playgroud)
请让我知道实现此目的的其他方法。任何可以轻松与本机UI Web组件集成的优秀库,如postaljs等。
html javascript web-component custom-element native-web-component
我正在尝试使用 React/Hooks 和 Intersection Observer API 跟踪元素可见性。但是,我不知道如何使用“useEffect”设置观察。有谁知道我该怎么做?我的解决方案不起作用...
function MainProvider({ children }) {
const [targetToObserve, setTargetToObserve] = useState([]);
window.addEventListener("load", () => {
const findTarget = document.querySelector("#thirdItem");
setTargetToObserve([findTarget]);
});
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.intersectionRatio === 0.1) {
console.log("It works!");
}
},
{
root: null,
rootMargin: "0px",
threshold: 0.1
}
);
if (targetToObserve.current) {
observer.observe(targetToObserve.current);
}
}, []);
return (
<main>
<div className="Section-item" id="firstItem"></div>
<div className="Section-item" id="secondItem"></div>
<div className="Section-item" id="thirdItem"></div>
</main>
);
}
Run Code Online (Sandbox Code Playgroud) 我在 React 中处理日期输入时遇到问题。所以日期值来自graphQL,日期格式是dd.mm.yyyy但为了设置HTML日期输入的默认值,我将格式转换为yyyy.mm.dd并再次保存数据,反之亦然。
我正在保存状态中的日期并调用更改函数来更新值和转换格式。
问题是这个函数被触发两次onChange并返回NaN-NaN-NaN(在第二次运行时)但不是每次都只是有时(奇怪)。而且,对于某些日期,它可以正常工作,例如,02.03.2000没有错误并且只执行一次。
与24叫两次在第二个呼叫(见截图)和错误。也许转换不知何故是错误的?如果我defaultValue从输入中删除,那么它只调用一次。
state = {
newUser: {
geburtsdatum: "01.02.2000"
}
}
ConvertDate(htmlDate, format) {
var date = new Date(htmlDate);
var dd = date.getDate();
var mm = date.getMonth() + 1;
var yyyy = date.getFullYear();
if (dd < 10) {
dd = "0" + dd;
}
if (mm < 10) {
mm = "0" + mm;
}
if (format === …Run Code Online (Sandbox Code Playgroud) 对不起,如果问题不对,
我想display特别是image在img标签的时候<input type=file>。
$(':input[type=file]').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
$(this).closest("img").attr('src',tmppath);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="file1" name="file1">
<font color="#FF0000">For best view upload only <b>200*250</b></font><div class="clear"></div>
<img src="" id="img1" class="img1" height="100px" width="100px"><br>
<input type="file" id="file2" name="file2">
<font color="#FF0000">For best view upload only <b>200*250</b></font><div class="clear"></div>
<img src="" id="img2" class="img1" height="100px" width="100px"><br>
<input type="file" id="file3" name="file3">
<font color="#FF0000">For best view upload only <b>200*250</b></font><div class="clear"></div>
<img src="" id="img3" class="img1" height="100px" width="100px">Run Code Online (Sandbox Code Playgroud)
这是我的jsfiddle
如何检查两个DOM元素是否是兄弟姐妹?
<div>
<a></a>
<b></b>
<p></p>
</div>
<i></i>
Run Code Online (Sandbox Code Playgroud)
测试是否<b>是兄弟姐妹<a>而不是兄弟姐妹<i>
我有一个 SPA,里面有很多图像。我想将这些图像公开给搜索引擎。所以我想创建只有机器人才能看到的“特殊”页面。这些页面将包含有关图像的元数据。
是否可以让 googlebot 抓取一个页面,但将其索引为另一页面?
我希望我的app组件有一个默认道具,并使用该道具 mapStateToProps.
import React, { Component, PropTypes } from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import Footer from '../components/Footer';
import TreeNode from '../containers/TreeNode';
import Home from '../containers/Home';
import * as NodeActions from '../actions/NodeActions'
export default class App extends Component {
constructor(props, context) {
super(props, context)
this.props = {
info:{
path:'/'
}
}
}
componentWillMount() {
// this will update the nodes on state
this.props.actions.openNode('/');
}
render() {
const { node …Run Code Online (Sandbox Code Playgroud) 合并提交消息以完全自动化的方式不同(无需手动amend)
在Windows下使用tortoiseGit,没有prepare-commit-msg 挂钩,只start-commit-hook和不管钩子脚本是什么,我得到一个窗口弹出错误:
%1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)
另外,我宁愿只更改“合并”的提交消息。
将工作树路径设置为与我的项目路径相同,
并在“执行命令行”中选择我准备的文件:
.git\hooks\prepare-commit-msg
Run Code Online (Sandbox Code Playgroud)
它的内容是echo "test".
然后我尝试提交并收到此错误:
我已经确定这个脚本文件确实是使用的文件,
因为如果我删除它,我会收到以下消息:
javascript ×7
reactjs ×3
ecmascript-6 ×2
html ×2
jquery ×2
bots ×1
dom ×1
git ×1
googlebot ×1
image ×1
indexing ×1
react-hooks ×1
redux ×1
seo ×1
tortoisegit ×1