请在CRUD操作方面遇到问题,任何可以帮助我使用nuxt.js实施CRUD操作的人,这些教程都没有帮助我
答案 0 :(得分:0)
您可以在此处找到有关Nuxt中CRUD操作的信息:https://itnext.io/quickly-building-restful-uis-in-nuxtjs-782bce539440
下面是代码的要点:
var products = [
{id: 1, name: 'Angular', description: 'Superheroic JavaScript MVW Framework.', price: 100},
{id: 2, name: 'Ember', description: 'A framework for creating ambitious web applications.', price: 100},
{id: 3, name: 'React', description: 'A JavaScript Library for building user interfaces.', price: 100}
];
function findProduct (productId) {
return products[findProductKey(productId)];
};
function findProductKey (productId) {
for (var key = 0; key < products.length; key++) {
if (products[key].id == productId) {
return key;
}
}
};
var List = Vue.extend({
template: '#product-list',
data: function () {
return {products: products, searchKey: ''};
},
computed : {
filteredProducts: function () {
var self = this;
console.log(self.products, self.searchKey)
if(!self.searchKey) {
return self.products
}
return self.products.filter(function (product) {
return product.name.indexOf(self.searchKey) !== -1
})
}
}
});
var Product = Vue.extend({
template: '#product',
data: function () {
return {product: findProduct(this.$route.params.product_id)};
}
});
var ProductEdit = Vue.extend({
template: '#product-edit',
data: function () {
return {product: findProduct(this.$route.params.product_id)};
},
methods: {
updateProduct: function () {
var product = this.product;
products[findProductKey(product.id)] = {
id: product.id,
name: product.name,
description: product.description,
price: product.price
};
router.push('/');
}
}
});
var ProductDelete = Vue.extend({
template: '#product-delete',
data: function () {
return {product: findProduct(this.$route.params.product_id)};
},
methods: {
deleteProduct: function () {
products.splice(findProductKey(this.$route.params.product_id), 1);
router.push('/');
}
}
});
var AddProduct = Vue.extend({
template: '#add-product',
data: function () {
return {product: {name: '', description: '', price: ''}
}
},
methods: {
createProduct: function() {
var product = this.product;
products.push({
id: Math.random().toString().split('.')[1],
name: product.name,
description: product.description,
price: product.price
});
router.push('/');
}
}
});
var router = new VueRouter({
routes: [{path: '/', component: List, name: 'root'},
{path: '/product/:product_id', component: Product, name: 'product'},
{path: '/add-product', component: AddProduct},
{path: '/product/:product_id/edit', component: ProductEdit, name: 'product-edit'},
{path: '/product/:product_id/delete', component: ProductDelete, name: 'product-delete'}
]});
new Vue({
el: '#app',
router: router,
template: '<router-view></router-view>'
});