vue+node商城demo笔记[不定时更新]
一、初始化项目和项目插件依赖下载
初始化:vue create xmall_front
安装依赖:
安装sass:npm install -D sass-loader node-sass
安装element-ui第三方组件库:vue add element
安装图片懒加载插件:npm i vue-lazyload -S
安装请求库:npm i axios -S
二、嵌套路由
建立router/index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Index from '../views/Index'
import Login from '../views/Loign/index'
import Home from '../views/Home/index'
import Goods from '../views/Goods/index'
import Thanks from '../views/Thanks/index'
Vue.use(VueRouter)
const routes = [
{
path:'/',
redirect:'/home',
name:'home',
component:Index,
children:[
{
path:'home',
component:Home
},
{
path:'goods',
component:Goods
},
{
path:'thanks',
component:Thanks
},
]
},
{
path:'/login',
name:'login',
component:Login
}
]
const router = new VueRouter({
routes
})
export default router
建立views下各项目
分析
main.js文件 ==> App.vue ==> views/Index.vue ==>下面各个子路由
三、导航栏、轮播图组件
在https://element.eleme.cn/#/zh-CN查看element使用方法
(在plugins/elements.js导入)
四、数据接口(轮播图数据)
建立vue.config.js
const fs = require('fs');
module.expors = {
devServer:{
before(app,serve){
app.get('/api/goods/home',(req,res)=>{
fs.readFile('./db/home.json','utf-8',(err,data)=>{
if(!err){
res.json(JSON.parse(data));
}
})
})
}
}
}
在main.js中挂载,使所有组件都能用$http:
在home/index组件中获取数据
使用$http.get获取,若状态码为200,找type为0的数据(0为轮播图)——baner
显示banner
五、组件模板(self的具名插槽)
建立模板组件Shelf.vue,且插入具名插槽
将子组件模板(import)引入并注册,从home/index向子组件传值(props)title => item.name,在具名插槽中写入自己部分内容
六、全部商品接口
版权声明:本文为qq_43486230原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。