如何使用 nuxt.js 实现 CRUD 操作

Posted

技术标签:

【中文标题】如何使用 nuxt.js 实现 CRUD 操作【英文标题】:how to implement a CRUD operation with nuxt.js 【发布时间】:2019-12-15 17:45:38 【问题描述】:

请在 CRUD 操作方面遇到问题,任何可以帮助我使用 nuxt.js 实现 CRUD 操作的人,所看到的教程对我没有帮助

【问题讨论】:

请添加一些代码,显示您到目前为止所做的工作。 事实是我对此知之甚少或一无所知,如果您或任何人可以向我推荐有关如何使用 nuxt.js 实现 crud 的材料,我将不胜感激 【参考方案1】:

您可以在这里找到有关 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>'
);

【讨论】:

以上是关于如何使用 nuxt.js 实现 CRUD 操作的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Nuxt.js 实现 Firebase 云消息传递 (FCM)

如何在 Vue.js/Nuxt.js 中为 RepositoryFactory 编写测试

使用 nuxt-auth 成功认证后如何获取用户信息

Nuxt+Express后端api接口配置与实现方式

如何使用 Nuxt.js 将自己的 JS 用作插件

如何使用 laravel 后端 API 在 nuxt.js 中上传图片