vue教程

本文介绍了如何在Vue项目中使用axios进行数据获取,包括安装axios、在Vue原型上挂载axios实例、在生命周期函数中调用获取数据的方法,并展示了如何在头部导航栏实现子组件间数据传递、路由跳转以及CSS样式控制。还涉及了使用better-scroll插件实现菜单栏的滚动功能。
摘要由CSDN通过智能技术生成

头部导航栏

先加载页面初始化数据,再写页面
1.安装axios
  1. 项目目录hnpro执行安装
    cnpm install axios
    

    安装成功[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9jKA0u54-1654715263305)(C:\Users\lyf12\AppData\Roaming\Typora\typora-user-images\image-20220609010030679.png)]

  2. 在main.js中导入组件
    import axios from 'axios'
    
  3. 在当前的vue对象当中添加axios属性
    Vue.prototype.$axios = axios
    

    后续使用直接使用$axios

2.加载初始化数据
  1. 在goodsView的js中添的methods添加获取数据方法getGoods(){}
    1. 参数1:methods:请求的方式为拿数据:GET

    2. 参数2:请求的地址:data.json(模拟的json数据)

      1. 将我们的data.json数据文件复制到public文件夹中image-20220609011335379
    3. 请求数据后

      1. 如果请求成功,进入.then(res => {}),(json数据会被完全封装在res这里)
        1. 打印console.log(res)
      2. 如果请求错误,进入catch(error => {})
      getGoods() { //通过axios发送请求
      	this.$axios({
      		methods: 'GET',
      		url: '../../data.json'
      	}).then(res => {
      		// 如果请求成功,走这里(json数据会被完全封装在res这里)
      		console.log(res)
      	}).catch(error => {
      		// 如果请求错误,走这里
      	})
      }
      
    4. 在methods前面创建生命周期函数created(){}

      1. 调用getGoods()方法,访问相关内容
      created() { //声明周期函数
      	this.getGoods()
      },
      methods: {}
      
    5. 数据请求成功,并且在控制台打印

      image-20220609012810820
3.拿取数据
  1. 在data的return中声明要拿取得数据的名字及类型
    export default {
    	data() {
    		return {
    			goods: [],
    			seller: {}	
    		}
    	}
    }
    
  2. 返回数据goods和seller

    getGoods() { //通过axios发送请求
    	this.$axios({
    		methods: 'GET',
    		url: '../../data.json'
    	}).then(res => {
    		// 如果请求成功,走这里(json数据会被完全封装在res这里)
    		console.log(res)
    		this.goods = res.data.goods
    		this.seller = res.data.seller			
    	}).catch(error => {
    	// 	// 如果请求错误,走这里
    	})
    }
    

    3.将子组件所需要的数据seller传递到子组件中

    1. 绑定一个seller,将seller数据传递到子组件HeadView中

      <HeaderView :seller="seller"></HeaderView>
      
    2. 在子组件中JS中用props方法,拿到全局数据的属性名和类型

      1. (props:父组件向子组件传参 通过属性传参)
      export default {
      	props: {
      		seller: Object
      	}
      }
      
    3. 在需要数据的模块,绑定相关数据 seller.avatar

      <img class="avatar" :src="seller.avatar" alt="">
      
    4. 获取其他所需数据,方法同上一致

头部菜单栏

1.头部子组件跳转到父组件
  1. to=“/”:为主页面

    <router-link to="/">商品</router-link>
    <router-link to="/rating">评价</router-link>
    
  2. 为新组件进行路由注册(例如:rating)

    1. 在router的index.js中添加引入

      import GoodsView from '../views/GoodsView.vue'
      import RatingView from '../views/RatingView.vue'
      
    2. 组件注册

      {
          path: '/rating',
          name: '/rating',
          component: RatingView
        }
      
2.点击改变字体颜色
  1. 不常见CSS样式

    1. 每个元素中间距离相等,两边各为一半

      justify-content: space-around;
      
  2. 绑定属性值,当满足点击条件,则执行对应样式

    1. 给每个页面添加唯一的标识符 (比如GoodsView页面为1,RatingView为2)

      return {
      	goods: [],
      	seller: {},
      	tabIndex: 1
      }
      
    2. 在组件GoodsView中将唯一标识tabIndex传给组件,通过绑定属性:tabIndex=“tabIndex”

      <HeaderView :seller="seller" :tabIndex="tabIndex"></HeaderView>
      
    3. 在接收的组件中接收其属性名和类型:tabIndex:Number

      props:{
      	seller: Object,
      	tabIndex:Number
      }
      
    4. 执行绑定属性,并加上相关样式

      <div class="tab-item" :class="tabIndex == 1 ? 'active' : '' ">
      	<router-link to="/">商品</router-link>				
      </div>
      
      .active a{
      	color: rgb(240,20,20);
      	text-decoration: none;
      }
      

左侧菜单栏

1.页面布局分析,拿取数据
  1. 目录结构

    1. 菜单导航:menu-wrapper
      1. 菜单:menu
        1. 菜单的每个按钮:menu-item
          1. 每个菜单的文本:menu-text
    <div class="menu-wrapper" ref="menuWrapper">
    	<div class="menu">
    		<div class="menu-item" v-for="(item,index) in goods" :key="index" :class="currentIndex == index? 'current':''">
    			<span class="menu-text">{{item.name}}</span>
    		</div>
    	</div>
    </div>
    
  2. 拿到每个menu-item值,需要循环从data.json拿取

    1. 在ment-item中用v-for循环拿取item,同时设置唯一一个key值index

      1. key值作用:优化循环遍历过程中dom渲染的效率
      <div class="menu-item" v-for="(item,index) in goods" :key="index" >
      
    2. 拿取name值

      <span class="menu-text">{{item.name}}</span>
      
2.滑动插件
  1. 分析

    1. 条件:子盒子比父盒子高
      1. menu-wrapper:父盒子(设置属性值:overflow: hidden; //超出父盒子的部分隐藏)
      2. menu-item:子盒子
  2. 在项目目录下安装插件

    1. cnpm install better-scroll --save
      
      image-20220608235034203
  3. 在对应的地方声明插件

    1. 在GoodsView的JS中导入

      import MenuScroll from 'better-scroll'
      
  4. 使用插件

    1. // 参数一:代表滚动的dom结点 document.geteLement

      // 通过$refs来获取dom结点

    2. 给要滚动的div添加 ref 属性

      <div class="menu-wrapper" ref="menuWrapper">
      
    3. // 参数二:滚动的基础配置项(此处暂时不做)

      initScroll(){
      	this.menuScroll =new MenuScroll(this.$refs.menuWrapper,{});
      }
      

      4.等页面的dom全部渲染完成以后执行以下代码

      1. 在axios获取数据后,写以下代码

        this.$nextTick(() => {
        	this.initScroll()
        })
        
SystemVue是一款强大的电子系统级(ESL)仿真软件,用于设计和验证各种通信和雷达系统。以下是SystemVue教程的简要介绍。 SystemVue教程旨在帮助用户快速了解和掌握SystemVue软件的使用方法和功能。教程提供了全面的学习资源,包括文档、示例项目和视频教程等。 SystemVue教程的内容包括以下几个主要方面: 1. 界面导览:介绍SystemVue的主要界面和工具栏,帮助用户熟悉软件的基本操作和界面布局。 2. 基本模块使用:教程介绍如何使用SystemVue中的基本模块来搭建仿真系统。包括信号源、滤波器、混频器等常用模块的应用。 3. 仿真设置和参数配置:教程详细介绍如何设置仿真参数和配置系统参数,以确保仿真的准确性和有效性。 4. 信号处理和分析:教程讲解SystemVue中各种信号处理和分析工具的使用方法,包括频谱分析、时域分析、波形观察等。 5. 通信系统仿真:教程重点介绍如何使用SystemVue来设计和仿真各种通信系统,如OFDM、CDMA、LTE等。 6. 雷达系统仿真:教程还提供了针对雷达系统设计的教学模块,包括雷达信号生成、目标检测和跟踪等相关内容。 通过SystemVue教程,用户可以了解到如何使用SystemVue软件进行各种系统级仿真,提高系统设计和验证的效率和准确性。教程内容全面且易于理解,适用于初学者和有一定经验的用户。无论你是通信系统工程师还是雷达系统设计师,掌握SystemVue教程将对你的工作和研究带来很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值