vue项目实战

文章目录

  • 1.顶部悬停效果
    • html代码
    • script代码
    • style
  • 2.电话本列表效果( 右边字母分类 上下滑动 旁边字母显示高亮)
    • 1.安装依赖
    • 2.模拟数据
    • 3.将data.json 转成模拟数据
    • 4.dom.js 编写
    • 5.singer.js 编写
    • 6.编写scroll.vue子组件编写
    • 7.编写list.vue子组件
    • 8.编写phonelist.vue父组件
  • 3.vue做代理解决跨域
    • 第一步安装依赖
    • 第二步进行配置
    • 第三步api.js调用
    • 第四步页面调用
  • 4.Vue路由切换时的左滑和右滑效果示例

1.顶部悬停效果

html代码

<template>
  <div class="fixtop2">

    <header class="header" ref="header">header>

    <div class="nav" ref="nav" :class="{isFixed:isFixed}">
      <div class="box" v-for="(item,index) in list" :key="index">
        {
  {item.title}}
      div>
    div>

    <ul class="content">
      <li v-for="(item,index) in new Array(50)" :key="index">{
  {index+1}}li>
    ul>

  div>
template>

script代码

<script>
var throttle = require('lodash/throttle'); //从lodash中引入的throttle节流函数
(记得安装lodash :npm install lodash )
export default {
   
  name: 'navScroll2',
  data() {
   
    return {
   
      list: [
        {
    title: 'AAAA', id: 1 },
        {
    title: 'BBBB', id: 2 },
        {
    title: 'CCCC', id: 3 },
        {
    title: 'DDDD', id: 4 },
      ],
      isFixed: false, //是否固定的
      throttleScroll: null, //定义一个截流函数的变量
    };
  },
  methods: {
   
    //滚动的函数
    handleScroll() {
   
      let h = $(this.$refs.header).outerHeight(); //header的高度
      let wh = $(window).scrollTop(); //滚动的距离的,为什么这里使用的jq,因为不用考虑的什么的兼容问题
(记得引进jq)
      let navH = $(this.$refs.nav).outerHeight(); //nav的高度

      if (wh > h) {
   
        this.isFixed = true;
      } else {
   
        this.isFixed = false;
      }
    },
  },

  mounted() {
   
    //写在掉接口的里面的
    this.$nextTick(() => {
   
      //这里使用监听的scroll的事件,为什么要使用的节流函数,如果不使用的,页面一直在滚动计算的,这样在
      //使用手机时候,出现非常卡的,隔一段时间计算,大大降低了性能的消耗(具体的好处自己去查资料)
      window.addEventListener('scroll', this.throttleScroll, false);
    });

    this.throttleScroll = throttle(this.handleScroll, 100);
  },
  deactivated() {
   
    //离开页面需要remove这个监听器,不然还是卡到爆。
    window.removeEventListener('scroll', this.throttleScroll);
  },
};
</script>

style


2.电话本列表效果( 右边字母分类 上下滑动 旁边字母显示高亮)

vue项目实战_第1张图片

1.安装依赖

"dependencies": {
   

    "better-scroll": "^0.1.15",
    
    "fastclick": "^1.0.6",
    
    "jsonp": "0.2.1",
    
    "vue": "^2.5.2",
    
    "vue-resource": "^1.5.1",
    
    "vue-router": "^3.0.1"
    
},

2.模拟数据

在根目录下写data.jon

{
   
	"errno": 0,
	"data": [
		{
   
			"Findex": "Z",
			"Fsinger_mid": "static/img/timg.jpg",
			"Fsinger_name": "张三",
			"Fsinger_tag": "541,555",
			"Fsort": "1",
			"Ftrend": "0",
			"Ftype": "0",
			"voc": "0"
		}, {
   
			"Findex": "Z",
			"Fsinger_mid": "static/img/timg.jpg"<

你可能感兴趣的:(前端面试题,Vue,vue.js)