当前位置: 首页 > news >正文

网站vpswordpress固定链接设置静态链接

网站vps,wordpress固定链接设置静态链接,如何做网站框架,上海市企业服务云官网一、综合案例 - 创建项目 本案例主要针对Vuex共享数据的练习以及父子组件数据的共享。 脚手架新建项目 (注意:勾选vuex) 版本说明: vue2 vue-router3 vuex3 vue3 vue-router4 vuex4/pinia vue create vue-cart-demo将原本src内容清空,替换…

一、综合案例 - 创建项目

本案例主要针对Vuex共享数据的练习以及父子组件数据的共享。

  1. 脚手架新建项目 (注意:勾选vuex)

    版本说明:

    vue2 vue-router3 vuex3

    vue3 vue-router4 vuex4/pinia

vue create vue-cart-demo
  1. 将原本src内容清空,替换成教学资料的《vuex-cart-准备代码》

需求:

  1. 发请求动态渲染购物车,数据存vuex (存cart模块, 将来还会有user模块,article模块…)
  2. 数字框可以修改数据
  3. 动态计算总价和总数量

二、综合案例-构建vuex-cart模块

  1. 新建 store/modules/cart.js
export default {namespaced: true,state () {return {list: []}},
}
  1. 挂载到 vuex 仓库上 store/index.js
import Vuex from 'vuex'
import Vue from 'vue'import cart from './modules/cart'Vue.use(Vuex)const store = new Vuex.Store({modules: {cart}
})export default store

三、综合案例-准备后端接口服务环境(了解)

  1. 安装全局工具 json-server (全局工具仅需要安装一次)
yarn global add json-server 或 npm i json-server  -g
  1. 代码根目录新建一个 db 目录
  2. 将资料 index.json 移入 db 目录
    {
    "cart": [{"id": 100001,"name": "低帮城市休闲户外鞋天然牛皮COOLMAX纤维","price": 128,"count": 1,"thumb": "https://yanxuan-item.nosdn.127.net/3a56a913e687dc2279473e325ea770a9.jpg"},{"id": 100002,"name": "网易味央黑猪猪肘330g*1袋","price": 39,"count": 14,"thumb": "https://yanxuan-item.nosdn.127.net/d0a56474a8443cf6abd5afc539aa2476.jpg"},{"id": 100003,"name": "KENROLL男女简洁多彩一片式室外拖","price": 128,"count": 2,"thumb": "https://yanxuan-item.nosdn.127.net/eb1556fcc59e2fd98d9b0bc201dd4409.jpg"},{"id": 100004,"name": "云音乐定制IN系列intar民谣木吉他","price": 589,"count": 1,"thumb": "https://yanxuan-item.nosdn.127.net/4d825431a3587edb63cb165166f8fc76.jpg"}
    ]
    }
    
  3. 进入 db 目录,执行命令,启动后端接口服务 (使用-
  4. -watch 参数 可以实时监听 json 文件的修改)
json-server  --watch  index.json

当服务启动后,可以访问http://localhost:3000/cart获取数据

四、综合案例-请求动态渲染数据

1.目标

请求获取数据存入 vuex, 映射渲染

在这里插入图片描述

  1. 安装 axios
yarn add axios
  1. 准备actions 和 mutations
import axios from 'axios'export default {namespaced: true,state () {return {list: []}},mutations: {updateList (state, payload) {state.list = payload}},actions: {async getList (ctx) {const res = await axios.get('http://localhost:3000/cart')ctx.commit('updateList', res.data)}}
}
  1. App.vue页面中调用 action, 获取数据
import { mapState } from 'vuex'export default {name: 'App',components: {CartHeader,CartFooter,CartItem},created () {this.$store.dispatch('cart/getList')},computed: {...mapState('cart', ['list'])}
}
  1. 动态渲染
<!-- 商品 Item 项组件 -->
<cart-item v-for="item in list" :key="item.id" :item="item"></cart-item>

cart-item.vue

<template><div class="goods-container"><!-- 左侧图片区域 --><div class="left"><img :src="item.thumb" class="avatar" alt=""></div><!-- 右侧商品区域 --><div class="right"><!-- 标题 --><div class="title">{{item.name}}</div><div class="info"><!-- 单价 --><span class="price">¥{{item.price}}</span><div class="btns"><!-- 按钮区域 --><button class="btn btn-light">-</button><span class="count">{{item.count}}</span><button class="btn btn-light">+</button></div></div></div></div>
</template><script>
export default {name: 'CartItem',props: {item: Object},methods: {}
}
</script>

五、综合案例-修改数量

在这里插入图片描述

  1. 注册点击事件
<!-- 按钮区域 -->
<button class="btn btn-light" @click="onBtnClick(-1)">-</button>
<span class="count">{{item.count}}</span>
<button class="btn btn-light" @click="onBtnClick(1)">+</button>
  1. 页面中dispatch action
onBtnClick (step) {const newCount = this.item.count + stepif (newCount < 1) return// 发送修改数量请求this.$store.dispatch('cart/updateCount', {id: this.item.id,count: newCount})
}
  1. 提供action函数
async updateCount (ctx, payload) {await axios.patch('http://localhost:3000/cart/' + payload.id, {count: payload.count})ctx.commit('updateCount', payload)
}
  1. 提供mutation处理函数
mutations: {...,updateCount (state, payload) {const goods = state.list.find((item) => item.id === payload.id)goods.count = payload.count}
},

六、综合案例-底部总价展示

  1. 提供getters
getters: {total(state) {return state.list.reduce((p, c) => p + c.count, 0);},totalPrice (state) {return state.list.reduce((p, c) => p + c.count * c.price, 0);},
},
  1. 动态渲染
<template><div class="footer-container"><!-- 中间的合计 --><div><span>共 {{total}} 件商品,合计:</span><span class="price">¥{{totalPrice}}</span></div><!-- 右侧结算按钮 --><button class="btn btn-success btn-settle">结算</button></div>
</template><script>
import { mapGetters } from 'vuex'
export default {name: 'CartFooter',computed: {...mapGetters('cart', ['total', 'totalPrice'])}
}
</script>
http://www.yayakq.cn/news/894747/

相关文章:

  • 网站删除期查询网站建设中字样图片
  • 绍兴市建设银行网站新品发布会结束语
  • 网站上的地图导航怎么做的wordpress外链论坛
  • 如何给网站增加关键词女装网站建设规划
  • 广州教育学会网站建设南宁高端网站
  • 厦门 网站建设公司电话网站建设交互效果
  • 公司电子商务网站建设策划书精美企业网站
  • 2003配置网站与2008的区别4大门户网站
  • 怎么在百度搜到自己的网站网站制作推广需要多少钱
  • 网站建设公司做销售好不好客户网站建设需要什么资料
  • 哪里有做响应式网站的做那种网站
  • 如何创办网站万能浏览器官方免费版
  • 北京公司网站建工体做网站的公司
  • 深圳高端做网站公司济南网站建设第六网建
  • 网站建设优惠券临汾网站建设 吕梁网站建设
  • 网站打开速度慢优化centos yum wordpress
  • 网站设计错误seo外链友情链接
  • wamp做的网站上传用vs2008做网站
  • 建设银行网站怎么查自己账号做选择网站
  • 潍坊建设厅网站墨刀可以做网站原型图吗
  • 新手建设网站的步骤百度竞价软件哪个好
  • 网站开发建设价格附件专注移动网站建设
  • 做网站的服务器用什么系统唐山企业网络推广培训
  • 机械加工网站有哪些做百度网站那家好
  • 最新网站建设进程wordpress如何做产品页
  • 用jsp做电影网站的界面wordpress怎样修改备案号
  • 如何做地方网站推广长沙专业的网站设计
  • 印刷报价网站源码下载网址转化短链接
  • 滕州手机网站建设案例网站设计语言
  • 建网站用什么工作站几分钟弄清楚php做网站