Vue 作业2

Vue作业

1、准备工作

// 新建项目
vue init webpack vue_work

// 安装依赖包, 在vue_work目录下执行
cnpm install

// 安装axios
cnpm install axios --save

// 启动项目
npm run dev

2、编码

  1. 在components目录向新建4个vue文件
    在这里插入图片描述

  2. 编码分别如下

Left1.vue

<template>
  <div>
    <button @click="get_data">给Lucas讲几个笑话</button>
    <button @click="transfer()">在右边框显示</button>
  </div>
</template>
<script>
  import eventHub from "../eventHub";
  export default {
    name: "Left1",
    data() {
      return {
        msg: 'message from Left1',
        list: []
      };
    },
    methods: {
      // 传递数据
      transfer() {
        eventHub.$emit("test", this.list);
      },

      // 从服务器获取数据
      get_data () {
        this.$axios
          .get('https://autumnfish.cn/api/joke/list?num=3')
          .then(res => (this.list = res.data))
      }
    },
  };
</script>

left2.vue

<template>
  <div>
    <button @click="get_data">从接口为1698113的仓库拿数据</button>
    <button @click="transfer()">在右边框显示</button>
  </div>
</template>
<script>
  import eventHub from "../eventHub";
  export default {
    name: "Left2",
    data() {
      return {
        msg: 'message from Left2',
        info: null
      };
    },
    methods: {
      // 传递数据
      transfer() {
        eventHub.$emit("test", this.info);
      },

      // 从服务器获取数据
      get_data () {
        this.$axios
          .get('http://rap2.taobao.org:38080/app/mock/schema/1698113?scope=response')
          .then(res => (this.info = res.data))

      }
    },
  };
</script>

Left3.vue

<template>
  <div>
    <button @click="get_data">从接口为1698112仓库拿数据</button>
    <button @click="transfer()">在右边框显示</button>
  </div>
</template>
<script>
  import eventHub from "../eventHub";
  export default {
    name: "Left3",
    data() {
      return {
        msg: 'message from Left3',
        info: null
      };
    },
    methods: {
      // 传递数据
      transfer() {
        eventHub.$emit("test", this.info);
      },

      // 从服务器获取数据
      get_data () {
        this.$axios
          .get('http://rap2.taobao.org:38080/app/mock/schema/1698112?scope=response')
          .then(res => (this.info = res.data))

      }
    },
  };
</script>

Right.vue

<template>
  <div>{{receive_data}}</div>
</template>
<script>
  import eventHub from "../eventHub";
  export default {
    name: "Right",
    data() {
      return {
        receive_data: null,
      };
    },
    mounted() {
      eventHub.$on("test", (val) => {
        this.receive_data = val;
      });
    },
  };
</script>

  1. 在APP.vue中引用上面4个vue组件
<template>
  <div id="app">
    <div class="left">
      <Left1 ></Left1>
      <br><br><br>
      <Left2></Left2>
      <br><br><br>
      <Left3></Left3>

    </div>
    <Right class="right"></Right>
  </div>
</template>

<script>
  import Left1 from "./components/Left1";
  import Left2 from "./components/Left2";
  import Left3 from "./components/Left3";
  import Right from "./components/Right";

  export default {
    name: "App",
    components: {
      Left1,
      Left2,
      Left3,
      Right,
    },
  };
</script>

<style>
  .left{
    width: 100px;
    height: 560px;
    padding: 20px;
    margin: 30px 0 0 30px;
    float: left;
    border: 2px silver solid;
    /*background: green;*/
  }
  .right{
    width: 600px;
    height: 600px;
    margin: 30px 0 0 30px;
    float: left;
    border: 2px silver solid;
    /*background: yellow;*/
  }
</style>

  1. 在src目录下新建中转bus
import Vue from 'vue'
export default new Vue()

  1. 在main.js中导入axios
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import axios from 'axios'
Vue.prototype.$axios = axios

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: { App },
  template: '<App/>'
})

3、结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
王者荣耀是一款非常热门的手机游戏,而我所承担的Vue作业就是为这款游戏设计一个页面。首先,我会使用Vue框架来搭建整个页面的架构,利用Vue的组件化开发特性,将页面拆分成多个组件,每个组件负责不同的功能。比如,将顶部的导航栏、底部的Tab栏、英雄列表、战斗记录等都拆分成不同的组件。 接着,我会利用Vue的数据绑定功能,将组件与页面中的数据进行关联。比如,将英雄列表组件与后台的英雄数据相绑定,实现数据的实时更新和展示。同时,利用Vue的计算属性功能,可以在页面中根据一些逻辑和条件生成一些动态的数据,比如,根据英雄的属性计算出其战斗力。 在页面的交互方面,我会使用Vue的事件处理机制,来处理一些用户操作。比如,用户在搜索框输入关键词后,触发事件,调用后台接口获取匹配的英雄列表,并将其展示在页面上。另外,我还会利用Vue的路由功能,实现页面间的跳转和导航。 最后,我会进行页面的样式设计和布局。利用Vue的模板语法,结合CSS样式,来定义各个组件的样式和布局。我会根据王者荣耀的风格进行设计,使页面更具有游戏的特色。 总之,通过运用Vue的组件化开发、数据绑定、计算属性、事件处理、路由等功能,我会设计一个功能齐全、界面美观的王者荣耀页面,为用户提供良好的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值