小编use*_*958的帖子

将React组件从函数重构为ES6类

我是ES6的新手.在编写React组件的不同方法上有点困惑.我从"React.createClass"开始,然后使用ES6类语法移动到"扩展React.Component".

现在关注Redux教程,我看到他们以这种方式定义组件

import React, { PropTypes } from 'react'

const Todo = ({ onClick, completed, text }) => (
    <li onClick={onClick} style={{ textDecoration: completed ? 'line-through' : 'none' }} >
        {text}
    </li>
)

Todo.propTypes = {
    onClick: PropTypes.func.isRequired,
    completed: PropTypes.bool.isRequired,
    text: PropTypes.string.isRequired
}

export default Todo
Run Code Online (Sandbox Code Playgroud)

我怎样才能重构这个"函数"移动到扩展React.component的ES6类?我想返回JSX是render()方法,不是吗?那么onClick,已完成的文本参数呢?

谢谢

javascript ecmascript-6 reactjs

6
推荐指数
1
解决办法
1007
查看次数

React/Redux,如何获得用户输入

我正在使用React Redux教程.我真正没有得到的是如何检索用户输入.

他们构建了一个FilterLink容器,其mapDispatchToProps是

const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    onClick: () => {
      dispatch(setVisibilityFilter(ownProps.filter))
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

因此它将自己的Pop.filter注入连接的表示组件.如果我们去看看这个容器是如何构建的

const Footer = () => (
  <p>
    Show:{" "}
    <FilterLink filter="SHOW_ALL">All</FilterLink>{", "}
    <FilterLink filter="SHOW_ACTIVE">Active</FilterLink>{", "}
    <FilterLink filter="SHOW_COMPLETED">Completed</FilterLink>
  </p>
)
Run Code Online (Sandbox Code Playgroud)

好的,有"过滤器"属性.这很清楚.

现在我想在同一个例子上构建一个文本过滤器.首先,这是我的表现部分

const TodoSearch = ({onSubmit}) => (
    <form
        onSubmit={e => {
            e.preventDefault()
            onSubmit()
        }}
    >
        <input placeholder="Text search" />
        <input type="submit" value="Go" />
    </form>
)
Run Code Online (Sandbox Code Playgroud)

但是当我来写容器时,我不知道如何获得用户输入

const mapDispatchToProps = (dispatch) => {
    return {
        onSubmit: () => { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux

6
推荐指数
1
解决办法
7886
查看次数

需要JS文件中的Vue

我是现代前端开发工具的新手。我安装了Nodejs和NPM。下载了一些软件包(例如:“ jquery”),一切正常。然后我安装了Webpack(第2版),创建了这个演示配置文件

module.exports = {
   entry: "./entry.js",
   output: {
       path: __dirname,
       filename: "bundle.js"
   }
};
Run Code Online (Sandbox Code Playgroud)

在我的JS入口点(entry.js)中,我可以成功使用jQuery模块,如下所示

var $ = require("jquery");
$('#test').html('Changed!');
Run Code Online (Sandbox Code Playgroud)

一切正常。我去Vue时会出现问题。我安装

npm install vue --save
Run Code Online (Sandbox Code Playgroud)

然后用

var Vue = require("vue");
var app = new Vue({
    el: '#app',
    data: {
        message: 'Hello Vue!'
    }
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何导入,然后使用构造函数。我写的清楚是不对的!实际上我得到这个错误

TypeError: Vue is not a constructor
Run Code Online (Sandbox Code Playgroud)

我想念什么?(注意:我不使用任何其他工具,仅使用Nodejs + NPM + Webpack2,并且如果可能的话,我想继续仅使用这三个工具)。

谢谢Marco

javascript web-frontend npm webpack vue.js

6
推荐指数
1
解决办法
7524
查看次数

如何使用 Browserify 和 Gulp 启动多页应用程序

好的,我使用 Gulp 和 Browserify 构建的新 PHP/JS 应用程序接近终点线。最后一部分是如何“启动”,我的意思是如何进行“第一次调用”。

假设我有 3 个 JS 入口点

/js/articles.js
/js/categories.js
/js/comments.js
Run Code Online (Sandbox Code Playgroud)

他们每个人都使用一些 JS 模块。然后我有 3 个 HTML 文件,需要它们的 JS

/articles.html
/categories.html
/comments.html
Run Code Online (Sandbox Code Playgroud)

示例/js/articles.js

var $ =                 require("jquery");
var common =            require("../common.js");

var viewModel = {

    readData: function() {
        /* read record from API and render */
    },

    insert: function() {
        /* open a modal to insert new record */
    }
};
Run Code Online (Sandbox Code Playgroud)

我现在应该做的是执行这种“启动”:即调用我需要的一些 init 函数,然后加载服务器数据,然后将所有按钮和东西绑定到 viewModel 的方法

$(document).ready(function() {
    common.init();
    viewModel.readData();
    $('#btn-add').click(viewModel.insert);
});
Run Code Online (Sandbox Code Playgroud)

好的,但是我把这个放在哪里?

A) 在 HTML …

javascript node.js node-modules browserify gulp

6
推荐指数
1
解决办法
231
查看次数

会话不是在Laravel 5中编写的

我正在寻求帮助.

我做了一个全新的Laravel装置(此时为5.2.15).我不是在使用Homested.我chmod'存储'目录和子目录,如文档所示,给予写入权限.会话配置为默认值,未触及任何内容.因此会话驱动程序是'文件',路径是'框架/会话'.

我写这些测试路线:

Route::get('/', function () {
    session(["test" => "ok"]);
    return view('welcome');
});

Route::get('/2', function () {
    print "session = ".session('test');exit();
});
Run Code Online (Sandbox Code Playgroud)

看到会话工作不应该足够吗?session('test')为null,并且没有在框架/会话中写入文件.Chmoded 777框架/会话文件夹,确保没有任何改变.

我是Laravel的新手..也许我错过了什么?我需要在config/session.php中设置这些变量吗?

'path' => '/',
'domain' => null,
Run Code Online (Sandbox Code Playgroud)

谢谢

php session laravel laravel-5

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

完美的滚动条不起作用

我在以下代码中缺少什么?为什么Perfect 滚动条会崩溃?

似乎将 myDiv 滚动条与浏览器主滚动条搞混了……感谢您的帮助。

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta charset="utf-8" />
    <link href="perfect-scrollbar.min.css" type="text/css" rel="stylesheet">
    <style>
        #myDiv {
            width: 400px;
            height: 400px;
            overflow: auto;
            background-color: #eeeeee;
            margin: auto;
        }
    </style>
</head>

<body>

<div id="myDiv">
    <p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect scrollbar</p><p>Test perfect …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery scrollbar perfect-scrollbar

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