我有下面的吸气剂:
withEarmarks: state => {
var count = 0;
for (let l of state.laptops) {
if (l.earmarks.length > 0) {
count++;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
在一个组件中,这个计算属性派生自该getter:
withEarmarks() { return this.$store.getters.withEarmarks; },
Run Code Online (Sandbox Code Playgroud)
返回的值是正确的,直到我更改laptops数组中的元素,然后getter不会更新.
我有一个vuex文件,其中有大量的mutator,但我不确定将它分成不同文件的正确方法.
因为我有:
const store = new Vuex.Store({ vuex stuff }) 然后在我的主要Vue应用声明之下: const app = new Vue({ stuff })
我很高兴与Vue组件合作并且已经有很多这样的组件,但这是应用程序顶层的东西,我不知道如何将它分开.任何建议表示赞赏
在我的组件中,我一直在使用:
this.$router.push({ name: 'home', params: { id: this.searchText }});
改变路线.我现在已经将一种方法转移到我的Vuex动作中,当然this.$router不再有效.也没有Vue.router.那么,我如何从Vuex状态调用路由器方法呢?
我有一堆类绑定语句:
:class="{active: isActive('status', status.id)}"
Run Code Online (Sandbox Code Playgroud)
这是上面提到的方法:
isActive: function (param, value) {
if (!this.activeFilters.hasOwnProperty(param) && value === 'all' && param !== 'type') {
return true;
}
...etc
}
Run Code Online (Sandbox Code Playgroud)
...以及该方法正在查看的计算属性:
activeFilters() {
return this.$store.state.activeFilters;
},
Run Code Online (Sandbox Code Playgroud)
哪个处于 Vuex 状态。
问题是,当单击具有上述类绑定的下拉列表之一时,这些属性不会更新。如果我导航到另一条路线然后返回,则活动类已被很好地应用。我可以强制计算属性重新计算以便立即应用该类吗?
我知道添加属性不会触发反应性,但根据this,如果我用新的对象替换对象,则应保持反应性。好吧,这就是我正在做的事情:
state.activeFilters = query;
Run Code Online (Sandbox Code Playgroud)
...更换对象。我难住了。
我正在为 Chrome 开发一个 Vue 应用程序,这让我相信(如果错误,请纠正我)我可以编写原生 ES6 并且不需要转译。
Vue CLI 生成一个 package.json 如下:
"devDependencies": {
"babel-core": "^6.0.0",
"babel-preset-es2015": "^6.0.0",
"babelify": "^7.2.0",
"browserify": "^13.0.1",
"browserify-hmr": "^0.3.1",
"cross-env": "^1.0.6",
"envify": "^3.4.1",
"http-server": "^0.9.0",
"npm-run-all": "^2.1.2",
"uglify-js": "^2.5.0",
"vueify": "^9.1.0",
"watchify": "^3.4.0"
},
"browserify": {
"transform": [
"vueify",
"babelify"
]
}
Run Code Online (Sandbox Code Playgroud)
但是如果我删除了对 Babel 的 4 个引用,我的第一个文件就会出现编译错误。所以我真的只有两个问题:
1) 我认为我可以放弃 Babel 是否正确?
2)我该怎么做?
我有一个小的声明递减一个值:
UPDATE cart_items SET quantity = quantity - 1
WHERE cart_id = {$cart_id} AND id = {$cart_item_id}
Run Code Online (Sandbox Code Playgroud)
但是如果该值在减量后变为0,那么SQL是否可以删除该行?如果是这样,那么我想重新计算与该购物车匹配的行数:
SELECT FROM cart_items WHERE cart_id = {$cart_id}
Run Code Online (Sandbox Code Playgroud)
如果行数为零,我想从另一个表中删除该记录,如下所示:
DELETE FROM cart WHERE id = {$cart_id}
Run Code Online (Sandbox Code Playgroud)
目前看起来需要几个查询才能做到这一点,但是这一切都可以在一个SQL语句中完成吗?
目前,如果用户导致编辑数据的操作,我会关闭API调用,然后有效地对我的应用程序执行"刷新"命令,从数据库重新下载所有相关数据,并且视图相应地更新.
我是应该直接编辑Vuex状态的数据,还是有某种观察器功能可以观察这些变化并将它们写回数据库?
我有一个典型的hasMany方法:
public function earmarks() {
return $this->hasMany('App\Earmark');
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用->with('earmarks')检索联接和其他条件时如何为它们添加关系?我要添加:
->join('locations', 'locations.id', '=', 'earmarks.location')
->select('earmarks.*', 'locations.location AS em_location')
->orderBy('date', 'asc');
Run Code Online (Sandbox Code Playgroud) 当添加新行或删除行时,我有动画在表格上运行。
但我想对更改的行进行动画处理- 它们不会添加或删除,但绑定到该行的数据会发生变化。
那可能吗?
我有一些命令行脚本,我想修改以使用Laravel的功能(Eloquent等).
我怎么做?我知道Laravel从index.html文件引导.是否有运行命令行应用程序/脚本的规定?
vue.js ×7
vuex ×5
laravel ×2
babeljs ×1
eloquent ×1
javascript ×1
mysql ×1
php ×1
sql ×1
vue-router ×1