VUE脚手架兄弟传值、ref用法、$nextTick改值、.sync语法糖、axios

1.VUE脚手架兄弟传值、ref用法、$nextTick改值、.sync语法糖:


在main.js文件中先配置:

import Vue from 'vue'

import App from './App.vue'

Vue.config.productionTip = false

/* 事件总线的方式 */

/* 在构造函数Vue的原型身上添加一个$bus属性

   属性的值是Vue的实例化对象 */

   /* 事件总线传值不局限于兄弟组件传值

      总的特征 先监听自定义事件 再发送自定义事件 */

      /* 频繁使用浪费性能 */


Vue.prototype.$bus = new Vue()

new Vue({

  render: h => h(App),

}).$mount('#app')



组件A:

<template>

  <div>

      <h1 @click="send">我是ChildA</h1>

  </div>

</template>

<script>

export default {

   name:"ChildA",

   methods:{

       send(){

           this.$bus.$emit('childV','兄弟组件通信先监听后发送')

       }

   }

}

</script>

<style>

</style>



组件B:

<template>

  <div>

      <h1>我是ChildB</h1>

      <h2>{{childaStr}}</h2>

  </div>

</template>

<script>

export default {

   name:"ChildB",

   data(){

   return{

       childaStr:''

   }

   },

   created(){

       /* 兄弟组件通信,需要使用$on  先监听  childA发送过来的自定义事件,

          值用回调函数接收 */

       console.log(this.$bus);

       this.$bus.$on('childV',(v)=>{

           console.log('childA传过来的值');

           this.childaStr = v

       })

   }

}

</script>

<style>

</style>



组件C:

<template>

  <div>

      <h1>我是ChildC</h1>

      <h2 @click="change">{{msg}}</h2>

  </div>

</template>

<script>

export default {

 name:"ChildC",

 /* props:['msg'], */

 props:{

  msg:{

      type:Object,

      /* 加了 required:true 表示必传属性 如果不传会有警告 */

      required:true

  }

 },

 methods:{

     change(){

         this.$emit('update:msg',{name:"和谐 友善"})

     }

 }

}

</script>

<style>

</style>


父文件:

<template>

  <div id="app">

    <h1 ref="app">我是app页面</h1>

    <h1 ref="hh">{{str}}</h1>

    <h1 @click="changeStr">{{strA}}</h1>

    <button @click="getText">获取文字</button>

    <!-- <button @click="updateText">修改文字</button> -->

   <child-a ref="childa"></child-a>

   <child-b></child-b>

   <child-c :msg.sync="msg"></child-c>

  </div>

</template>

<script>

import ChildA from '@/components/ChildA.vue'

import ChildB from '@/components/ChildB.vue'

import ChildC from '@/components/ChildC.vue'

export default {

  name: 'App',

  components: {

   ChildA,

   ChildB,

   ChildC

  },

  data(){

  return{

    strA:'我爱鱿鱼须',

    str:'我爱学VUE',

    msg:{name:'富强 民主'}

  }

  },

  methods:{

  getText(){

    console.log(this.$refs.hh.innerHTML );

    /* 获取str的同时修改内容 */

      this.str = '我爱学JS'

    /* 在获取dom元素的内容的时候,如果之前有修改data中的值

       那么将获取不到最新的dom的值你会发现获取的值还是原来的 */

       /* 想要解决 使用 this.$nextTick 在回调函数中来获取最新的修改后的

       dom的值 */

       /* 在下次 DOM 更新循环结束之后执行延迟回调。

       在修改数据之后立即使用这个方法,获取更新后的 DOM  */

    this.$nextTick(()=>{

      this.str = '我爱学JS'

    })


  },

  changeStr(){

     this.strA=  '我爱youyuxi'

    this.$nextTick(()=>{

      this.strA=  '我爱youyuxi'

    })

  }

  /* updateText(){

   this.str = '我爱学JS'

  } */

  },

  mounted:function(){

    /* 通过refs 方法也可以获得子组件的属性和值 */

    /* 获取的内容和 this.$children[0] 一样的 */

    console.log(this.$refs.childa);

    console.log(this.$children[0]);

    console.log(this.$refs.app);

    /* $refs 操作于原生的dom就可以获取到原生dom元素 */

    this.$refs.app.style.background = 'red'

  },

  created(){

    /* this.$bus.$on('childV',(v)=>{

      console.log('app页面接收的值',v);

    }) */


  },

/* methods:{

  handler(){

    this.msg='子改父'

  }

} */

}

</script>

<style>

#app {

  font-family: Avenir, Helvetica, Arial, sans-serif;

  -webkit-font-smoothing: antialiased;

  -moz-osx-font-smoothing: grayscale;

  text-align: center;

  color: #2c3e50;

  margin-top: 60px;

}

</style>

左侧文件目录:


2.axios基础:

<template>

  <div id="app">


  </div>

</template>

<script>

import axios from 'axios'

export default {

  name: 'App',

  created(){

    //.get 和 .post 都是简写

    //执行 GET 请求

    //第一种 get加参数可以在请求上直接加

    /* axios.get('https://cnodejs.org/api/v1/topics?name=zhangsan')

    .then(res=>{

      console.log(res);

    })

    //第二种  使用{params:{xxx:xxx}}

    axios.get('https://cnodejs.org/api/v1/topics',{

      params:{

        name:"zhangsan"

      }

    })

    .then(res=>{

      console.log(res.data);

    })

    .catch(err=>{

      console.log(err);

    })


    //axios 何如使用post请求

    axios.post('',{

      email:"",

      password:""

    })

    .then(res=>{

      console.log(res);

    })

    .catch(err=>{

      console.log(err);

    }) */

    /* 使用全面配置的方式发送post请求 */

    axios({

      method:'get',

      url:'http://timemeetyou.com:8889/api/private/v1/users',

      headers:{

      'Authorization':''

      },

      /* 全面配置中传参数 要用params 不要用data */

      params:{

      pagenum:1,

      pagesize:10

      },

      /* 如果是get 要用 params*/

      data:{

        email:'',

        password:''

      }

    })

    .then(res=>{

      console.log(res);

    })

    .catch(err=>{

      console.log(err);

    })

  }

}

</script>

<style>

#app {

  font-family: Avenir, Helvetica, Arial, sans-serif;

  -webkit-font-smoothing: antialiased;

  -moz-osx-font-smoothing: grayscale;

  text-align: center;

  color: #2c3e50;

  margin-top: 60px;

}

</style>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容