好的,我有一个从ajax获取数据的函数:
function getData(data){
console.log(data.someVar);
}
Run Code Online (Sandbox Code Playgroud)
Webstorm说someVar- 是未解决的变量.我不知道如何处理这么多警告.
我看到几个选项:
data['some_unres_var']但/** @namespace data.some_unres_var*/警告我不要这样做);Webstorm也让我为"数据"创建命名空间(添加注释someVar),创建这样的字段或重命名它.
在vuejs 2.0 model.sync中将被弃用.
那么,在vuejs 2.0中兄弟组件之间进行通信的正确方法是什么?
我在Vue 2.0中发现的想法是通过使用商店或事件总线进行兄弟姐妹的沟通.
据埃文说:
值得一提的是"在组件之间传递数据"通常是一个坏主意,因为最终数据流变得无法跟踪并且很难调试.
[ 链接到讨论 ]
和:
.once并且.sync已弃用.道具现在总是单向下降.要在父作用域中产生副作用,组件需要显式地emit显示事件而不是依赖于隐式绑定.
(所以,他建议使用$emit和$on)
我很担心因为:
store并event具有全球知名度(纠正我,如果我错了);我想要的是以某种方式或兄弟姐妹组件的可见性范围.或者也许我没有抓住这个想法.eventsstores
那么,如何以正确的方式沟通?
如何在单个v-on:click事件中调用多个函数?没有区别:点击,关注或其他什么?
就像是:
<div v-on:click="fn3('foo', 'bar')"> </div>
function fn3 (args) {
fn1(args);
fn2(args);
}
Run Code Online (Sandbox Code Playgroud)
或者可能:
<div v-on:click="fn3('foo', 'bar')"> </div>
function fn3 (args) {
fn1(args);
fn2(args);
}
Run Code Online (Sandbox Code Playgroud)
怎么做对了?
更新:是的,我当然可以做到
<div v-on:click="fn3('foo', 'bar')"> </div>
function fn3 (args) {
fn1(args);
fn2(args);
}
Run Code Online (Sandbox Code Playgroud)
但这真的很难看.
题
这是一种package-lock.json无需真正安装node_modules(如npm i)即可更新/生成的方法吗?我只需要一个package-lock.json基于我的有效package.json,就是这样。
动机
您(或您的同事)可能会使用yarn本地,当CI服务器使用npm。这可能不是最佳实践,但仍可能出于某些原因。
在一个完美的世界中,我想要一个命令来更新 package-lock.json
额外问题:对于yarn. 有没有办法在yarn-lock.json没有模块安装的情况下生成(yarn install)?
我想在html中直接使用少量常量,在控制器中几次使用.
例如,这是主要的app模块:
angular.module('website', [])
.constant('ROUTES', (function () {
return {
SIGN_IN: '/sign/in'
}
})())
.config([..., 'ROUTES', function(..., ROUTES {
$routeProvider.when(ROUTES.SIGN_IN, {templateUrl: 'pages/sign_in.html', controller: 'SignInController'});
}]);
Run Code Online (Sandbox Code Playgroud)
所以这很清楚,如何使用来自控制器的常量.
但我怎么能做这样的事情:
<html ng-app="website">
<body>
<a href="{{ROUTES.SIGN_IN}}">Sign in</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
关键是要将所有路线保持在一个地方.那么,我可以这样做,还是我可能选错了方式?
因为我可以使用selenium-standalone和xpath来测试应用程序.但测试SPA可能会在某个时候发生挑战.
但是,例如angularjs的团队为此提供了量角器.
我可以看到量角器背后的原因是量角器等到angularjs将被加载并且还有更多的功能:
Protractor提供了一些新的定位器策略和功能,这对于AngularJS应用程序的自动化非常有用.示例包括:waitForAngular,By.binding,By.repeater,By.textarea,By.model,WebElement.all,WebElement.evaluate等.
所以,问题是:在Vuejs中进行e2e测试是否是任何工具或最佳实践?
UPD:随时发布指向教程的链接,示例以及关于vue.js中e2e-testing的一切.谢谢.
也许我很厚,但是我无法理解在PHPStorm中创建项目时"资源根"按钮/名称是什么.查看了有关该主题的PHPStorm文档后,我发现的唯一解释是以下内容的变体:
"资源根目录:通过为此类别指定一个文件夹,您可以告诉PhpStorm可以相对于此文件夹引用其中和其子文件夹中的文件(而不是指定它们的完整路径).这些文件夹标有图标[purple目录] ]".
这不回答我的问题.
我真的不知道如何在react组件的子代中模拟内联函数
我栈:sinon,chai,enzyme,
组件用法:
<ListItem onClick={() => someFn()} />
Run Code Online (Sandbox Code Playgroud)
组件的渲染:
render() {
return (
<li>
<a href="#" onClick={e => {
e.preventDefault();
this.props.onClick();
}}
> whatever </a>
</li>
);
}
Run Code Online (Sandbox Code Playgroud)
我们在这里onClick打电话e.preventDefault().如何告诉<a href>(link)不要打电话e.preventDefault()?我怎么能嘲笑那个onClick?
以下我在测试中尝试:
浅拷贝设置
function setup() {
const someFn = sinon.stub();
const component = shallow(
<ListItem
onClick={() => {
someFn();
}}
/>
);
return {
component: component,
actions: someFn,
link: component.find('a'),
listItem: component.find('li'),
} …Run Code Online (Sandbox Code Playgroud) 有一种方法可以在WebStorm中运行和调试量角器Web测试.我只想在这里分享这个答案
javascript ×6
vue.js ×4
webstorm ×4
angularjs ×2
node.js ×2
phpstorm ×2
coding-style ×1
e2e-testing ×1
enzyme ×1
frontend ×1
mocha.js ×1
node-modules ×1
npm ×1
protractor ×1
reactjs ×1
selenium ×1
sinon ×1
unit-testing ×1
vuejs2 ×1
vuex ×1
yarnpkg ×1