根据这个 babel文档,使用ES6 +与React的正确方法是初始组件,如下所示:
class Video extends React.Component {
static defaultProps = {
autoPlay: false,
maxLoops: 10,
}
static propTypes = {
autoPlay: React.PropTypes.bool.isRequired,
maxLoops: React.PropTypes.number.isRequired,
posterFrameSrc: React.PropTypes.string.isRequired,
videoSrc: React.PropTypes.string.isRequired,
}
state = {
loopsRemaining: this.props.maxLoops,
}
}
Run Code Online (Sandbox Code Playgroud)
但是一些官方的例子,比如Dan Abramov自己的React DnD模块,使用ES6 +,但仍然在构造函数中定义状态:
constructor(props) {
super(props);
this.moveCard = this.moveCard.bind(this);
this.state = {
// state stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在,作为React的重要贡献者的Dan Abramov可能知道他可以在构造函数之外定义状态,但仍然选择在构造函数中执行它.
所以我只是想知道哪种方式更好,为什么?
哪个更好:导出const箭头函数,如下所示:
export const foo = () => 'bar'
Run Code Online (Sandbox Code Playgroud)
或导出常规函数,如下所示:
export function baz() {
return 'bar';
}
Run Code Online (Sandbox Code Playgroud)
他们编译如下:
exports.baz = baz;
function baz() {
return 'bar';
}
var foo = exports.foo = function foo() {
return 'bar';
};
Run Code Online (Sandbox Code Playgroud)
看起来使用const /箭头函数组合声明了一个额外的变量(foo),这似乎是简单函数声明的一个不必要的额外步骤.
我想在我刚刚创建的Rails项目中导入Start Bootstrap主题.它是一个完整的网站主题,因此它附带HTML页面以及资源(字体,CSS,JS文件).
我猜测资产进入资产管道(资产/*),但我如何处理主题附带的bootstrap.css文件?由于我安装了bootstrap gem,我认为将引导文件放入资产管道对我来说是多余的.
另外,HTML页面会去哪里?
非常感谢!
我是一个新的Web开发人员,并在理查德Bovell在建议JavaScript是性感,我决定通过制作......好吧,测试,测试自己的技能!
我做了基本的HTML,并且我编写了一个函数来显示任何给定的问题,它在JSFiddle中完美运行.
然而,当我使用PHPStorm(用我的浏览器运行它)测试它时,似乎JavaScript/jQuery没有加载.
事实上,当我使用Chrome的错误控制台时,jQuery.min说"无法加载资源".
我在我的源代码中使用此代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
我也试过使用这个来源:
<script type='text/javascript' src='//code.jquery.com/jquery-1.10.1.js'></script>
但也没有加载资源.
因此,我的整个JavaScript代码都不起作用,因为它是基于jQuery的.
如果我将链接加载到我的Web浏览器中它完全正常,所以它看起来不像网络错误.
编辑:
这是我的小提琴:http://jsfiddle.net/abustamam/3CY7g/
错误如下:
Uncaught ReferenceError: $ is not defined script.js:2
(anonymous function) script.js:2
Failed to load resource file://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
任何人都可以给我一些指示,为什么jQuery没有加载?谢谢!
编辑2:得到了答案.http:是必需的!谢谢!