# shop
**Repository Path**: Dogw/shop
## Basic Information
- **Project Name**: shop
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-11-05
- **Last Updated**: 2024-11-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
/project
.gitignore git仓库忽略文件
index.html 页面入口文件
package.json 安装包依赖文件
vite.config.js vite配置文件 === config.php
node_modules/ 依赖包 === vender
public/ 公共访问目录 === public
dist/ 打包目录
src/ 开发逻辑目录 === application
/src
App.vue 项目入口文件 === view/layout.html
main.js 项目的核心文件 === public/index.php
assets/ 放置一些图片,如logo等
components/ 组件目录 ==== view 视图
package.json -> npm 创建出来的
scripts -> 命令列表
dependencies -> 生产阶段依赖包
devDependencies -> 开发阶段依赖包
启动命令
npm run dev
yarn dev
找东西:
1、index.html (程序的入口文件、vue应用的div容器 id=app)
import { createApp } from 'vue' 引入vue框架
App -> 根组件(父组件)
HelloWorld.vue(子组件)
Thinkphp MVC
Vue M V VM(视图模型-控制器-组件)
Vue 风格代码 Vue2/Vue3
Vue2 选项式的风格
{
data:{}
methods:{},
computed:{},
watch:{},
onCreated(){}
}
Vue3 组合式的风格 == php通讯录很相似 上面php 下面的html
Vue2 -> Object.defineProperty 定义属性的方法
Vue3 -> Proxy 代理对象 完成数据的绑定
父子通信
父->子:传递属性props
子->父:传递事件方法event(emits)
全局的传参方式
传递:provide('demo')
接收:inject('demo')
v-if 只会渲染满足条件的一条
v-show 会直接插入到页面中 只是通过css 设置显示还是隐藏而已
万能标签
插槽
demo.vue
demo2.vue
头部
slot -> 组件内插槽
teleport -> index.html 全局入口页面的插槽
安装路由
npm install vue-router@4
yarn add vue-router@4
#/
# 锚点功能 hash模式
/ 默认路由
Vue 单页面应用
path: /info/:pid -> params 传参 跳转需要用 name 属性来跳转
path: /search -> query 传参 跳转就正常使用 path 属性来跳转
/business/index
/business/profile
/business/login
路由嵌套
/business -> 父路由
/index -> 子路由
/profile
/login
Vue -> 声明周期 beforeMounted onMounted
Router -> 钩子函数全局 beforeEach(进入路由前) afterEach(进入路由后)
/business/index 进入路由前,判断是否登录,meta:{auth:true}
拓展一套 UI框架进来
搭建第一个 Vite 项目
yarn create vite
Vue 和 Thinkphp 对比
Thinkphp MVC 工具具备的很全面 cookie session 分页 文件上传....
Vue MVVM 不具备常见开发功能 它仅仅只是一个纯裸框架的
Vue纯裸的框架上 不断去迭代功能 让他逐渐变成 Thinkphp模样
造轮子的过程 Nuxt框架 == Thinkphp
造轮子搭建过程:
1、添加别名路径变量
2、安装路由:yarn add vue-router@4
3、安装整合路由插件:
npm install vite-plugin-pages -S
npm install vite-plugin-vue-layouts -S
4、官方的工具包,自动引入
npm install unplugin-auto-import -S
5、安装UI框架,移动端
yarn add vant
npm i vant
6、全局自动导入自定义组件
yarn add unplugin-vue-components -S
cnpm install unplugin-vue-components -S
https://www.quickask.net/docs/book/web/frame/vue/04/01.html#unplugin-auto-import-vite-%E6%8E%A8%E8%8D%90%E5%A5%BD%E7%94%A8
7、安装城市数据包
yarn add @vant/area-data -S
cnpm i @vant/area-data -S
import { createApp } from 'vue';
import { Area } from 'vant';
const app = createApp();
app.use(Area);
路由的配置 https://www.quickask.net/docs/book/web/frame/vue/04/02.html#%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%E8%B7%AF%E7%94%B1%E7%AC%AC%E4%B8%89%E6%96%B9%E6%8F%92%E4%BB%B6
console.log(generatedRoutes)//想知道路由的位置 import generatedRoutes from 'virtual:generated-pages'
router/index.js
8.接口配置
yarn add axios -S
cnpm install axios -S
全局挂载
在业务中使用
反向代理
//创建模型
php think build --module shop
//创建登录的控制器
php think make:Controller shop/Business
前端发送的时候:http://localhost:5173/shop/business/login
反向代理:vite.config.js http://www.fast.com/shop
http://www.fast.com/shop/shop/business/login
后端接口地址:http://www.fast.com/shop/business/login
fastadmin后端:phpstudy -> apache
vue -> vite构建工具 -> server(服务器软件)
http服务(apache == nodejs)
vite == webpack ->webpack-dev-server(http服务器功能) == apache
vue2 -> vue.cli -> webpack/webpack-dev-server
vite(server - nodejs)
cookie
vue全家桶
vuex -> vue2/vue3
pinia -> vuex
vuex、pinia 状态管理
vuex -> state(data数据) -> action -> mutation -> getter(computed)
state: data数据
getter: 获取器
mutation: setter修改器
action: 提交一个修改动作
pinia
state: data数据
getter: 获取器
action: 提交一个修改动作
安装pinia 本地存储localStorage
yarn add pinia -S
yarn add pinia-plugin-persist -S
cnpm install pinia -S
cnpm install pinia-plugin-persist -S
把登录成功后的数据存入 本地存储localStorage
pinia
做判断异常登录的问题
邮箱验证
思路: 就是需要验证 该账户的 auth 为0 验证成功后变为1
事件名 说明 回调参数 //selectedValues 地址码 selectedOptions 文字
confirm 点击完成按钮时触发 { selectedValues, selectedOptions, selectedIndexes }
收货地址 创建控制器 Address
php think make:controller shop/Address
{
id:1,
name: '张三',
tel: '13512644556',
address: '广州海珠区 新港西路230号',
isDefault: true,
},
{
id:2,
name: '张三',
tel: '13512644556',
address: '广州海珠区 新港西路230号',
isDefault: false,
},
{
id:3,
name: '张三',
tel: '13512644556',
address: '广州海珠区 新港西路230号',
isDefault: false,
}
//创建模型
php think make:model common/Product/Product
ul.proul li .tit {
height: 40px;
line-height: 22px;
/* 改 */
font-size: 15px;
/* 字体自动换行 */
word-wrap:break-word;
font-weight: 700;
color: #333;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
padding: 5px 10px;
}
//创建商品单位模型
php think make:model common/Product/Unit
php think make:model common/Product/Type
php think make:controller shop/Product
//商品详细查询
//需要的条件 商品名字 价格 商品描述 暂时需要的数据 product 这个表的数据 typeid unitid 根据外键做外连接
该商品的评论表 写出选项卡的另一部分的 评分
//创建订单商品表
php think make:model common/Order/OrderProduct
//做收藏功能 需要传递的值大致有 商品的id busid
sku 商品规格
yarn add vant-sku -S
cnpm i vant-sku -S
ProductOrder
php think make:model common/Product/Cart
php think make:model common/Product/Prop
php think make:model common/Product/Relation
php think make:controller shop/Cart
php think make:controller shop/Order
//添加订单 业务逻辑
如果你使用余额支付的情况下
1.需要改变用户的余额值
2.订单表插入一条新数据
3.订单商品表也插入一条新数据
4.插入消费记录
5.更新库存
6.删除购物车的数据
7.优惠券更新状态
ljcshop
后台: 商品管理、进销存管理
------------直播------------ 推流:主播
拉流:观看的用户
设置推流和拉流的请求地址 配置推流身份验证(效验) 关联推流和拉流 生成推流(推送流媒体)和拉流的(视频播放地址) 开启直播和播放直播
生成播流地址:play.quickask.net 生成推流地址:push.quickask.net
将提前录制好的视频 推流上去 ffmpeg -re -i ./live.mp4 -vcodec h264 -acodec aac -strict -2 -f flv rtmp://推流地址
购买的人数:100w人 库存:100件 redis 消息队列 先进先出 100个
立即购买:用户 入列 用户出列
数据库交互:下单、扣钱、扣库存、插入消费记录、推荐人分成
redis 服务器端(缓存的数据库) navicat(客户端) 支持操作redis php 安装 redis 拓展 让php 可以操作 redis
发现功能
评论