vue

  1. 数据双向绑定:v-model
  2. 绑定css:v-bind:class=“isflag ? active:error”(引用样式)
  3. 自定义组件
    全局组件
//1.自定义组件data应该返回一个函数
//2.可以在vue对象中使用自定义组件
//3.全局组件可以在任何Vue对象中使用多次
//4.由于自定义组件可以使用多次,data返回的函数则说明函数内部变量是局部变量(组件之间不会相互影响)
<div id="app">
   <button-counter></button-counter>
   <button-counter></button-counter>
</div>
<script>
var mydata={count:0}
 Vue.component('button-counter',{
     data:function(){
        //return {
           //count:0,
        //},        
        return mydata
        //自定义组件最后返回的结果,template只能返回一个根元素
        template:'<button>{{count}}</button>'
     }
 })
 new Vue({el:'#app'})
 </script>

局部组件


<div id="app3">
   <my-header>
     <button slot='left'><-</button>
     <button slot='right'>-></button>
   </my-header>
</div>
<div id="app4">
   <my-header>
     <my-title></my-title>
   </my-header>
</div>
var vue = new Vue({
  el:'#app3',
  //组件局部注册
  components:{
       'my-header':{
         template:'<div>我是头部文件</slot></div>'
        },
        'my-title':{
         template:'<div>我是标题</div>'
        }
    }
})
var vue = new Vue({
  el:'#app4',
  //组件局部注册
  components:{
       'my-header':{
            template:'<div>我是头部文件</slot></div>'
        },
        'my-title':{
            template:'<div><slot name = "left"/>我是标题<slot name="right"/></div>'
        }
    }
})

组件动态绑定

<div id = 'app'>
  <keep-alive>
    <component :is="nowHeader"></component>
  </keep-alive>
</div>
<script>
   //1.component标签的is属性来完成组件的动态绑定
   //2.按钮的@click来修改data属性
   //3.keep-alive保留文件的组件的状态值
   var vue = new Vue({
      el: '#app',
      data:{
         nowHeader:'header-1'
      },
      component:{
          'header-1':{template:'<div>组件1</input></div>'},
          'header-2':{template:'<div>组件2</input></div>'},
          'header-3':{template:'<div>组件3</input></div>'}
      }
   })
</script>
  1. 参数传递:
    父组件传给子组件:子组件通过props方法接收数据
    子组件传给父组件:$emit方法传递参数
    兄弟间组件通信:使用vuex解决问题,先创建store对象;或者用eventBus,就是创建一个事件中心,相当于中 转站,可以用它来传递事件和接收事件。项目比较小时,用这个比较合适
  2. 路由的钩子函数:
    beforeEach主要有3个参数to,from,next
    to:route即将进入的目标路由对象
    from:route当前导航正要离开的路由。
    next:function一定要调用该方法resolve这个钩子。执行效果依赖next方法的调用参数。可以控制网页的跳转
    next() 去下一步;next( false )阻止跳转;next(’ / ‘)或 next({ path:’ / ’ })跳转到不同路径
    路由跳转:this.$router.push()
    (1) 实际使用-默认脚手架安装已经安装路由:
    在router的index.js直接配置如下:
import Router from 'vue-router'
import News from ../component/News.vue
Vue.use(Router)
export default new Router({
  routers:[
	  {
	   path: '/News',
	   name:'News',
	   News
	  }
  ]
})

(2)没有选择安装vue-router
npm install vue-router --save / cnpm install vue-router --save 进行安装
在main.js入口文件下,导入并引用

import Router from 'vue-router';
Vue.use(Router);

配置路由信息:—>创建组件,并引入---->定义路由---->实例化---->挂载

//创建组件并引入
import News from ../component/News.vue
//定义路由
const routers = [
 {path: '/News',name:'News',News},
 {path: '*',redirect,'/News'}//默认跳转路由
]
//实例化router
const router = new Router({router})
new Vue({
	el:"#app",
	router,
	component:{App},
	template:'<App/>'
})

组件模板里放入路由的入口,所有的路由都在此处显示

<div id='app'>
   <router-view></router-view>
</div>
  1. vue生命周期
    创建之前,vue实例的挂载元素el和数据对象data都为undefined
    created,vue实例的数据对象data
    挂载之前,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点 ,data.message还未替换
    mounted(挂载完成)阶段,vue实例挂载完成 data.message成功渲染
    updated data数据被更新时执行
    销毁之前,
    destoryed,Vue实例的所有东西会解除绑定,所有的事件监听器会被移除,所有的子实例会被销毁 ,但是dom结构依然存在
  2. axios
<script>
//跨域:现阶段域名与访问地址不是同一个域名
created:function(){
 axios.get("http://www.163.com").then(function(result){
    console.log(eval(result.data))
 }.bind(this))
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值