详解Vue 全局变量,局部变量


Posted in Javascript onApril 17, 2019

局组件和局部组件

1.先定义组件   Vue.component('组件名', { 组件模板对象 })

注意: 组件名不要使用原生的标签名, 若组件名定义时用的是驼峰命名法, 则调用时用中划线分割后小写
例如: 组件-->mtText   使用时-->   <my-text></my-text>

2.配置组件的模板  注意: 组件的模板内容有且只有一个根元素

3.在视图层里调用 ,用双标签

4.组件是一个独立的作用域, 也可以看成一个特殊的vue实例, 可以有data, methods,computed等等

注意: 组件的data是函数, 函数中需要返回一个对象作为组件的data

全局组件案例

<body>
<div id="app">
  <my-component></my-component>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
//全局组件
  Vue.component('myComponent',{
    //1.组件的内容/模板
    template: '<div><div>头部组件</div><h1 @click="fn">呵呵{{msg}}</h1></div>',
    data(){
      return {
        msg:'hello,组件'
      }
    },
    methods:{
      fn(){
        console.log(this.msg);
      }
    }
  })
  let vm = new Vue({
    el:"#app",
    data:{
    },
    methods:{

    },

  })
</script>
</body>

局部组件案例

<body>
<div id="app">
  <my-component></my-component>
  <my-test></my-test>
</div>
<template id="box1">
  <h1>haha</h1>
</template>
<template id="box2">
  <div>
    <ul>
      <li v-for="item in arr">
        {{ item }}
      </li>
    </ul>
  </div>
</template>
<script src="lib/vue-2.4.0.js"></script>
<script>
let vm = new Vue({
    el:"#app",
    data:{
    },
    methods:{

    },
    //局部子组件
    components:{
      // 组件名: {配置项}
      "myComponent":{
        template:'#box1',
        data(){
          return {
            msg:"哈哈"
          }
        }
      },
      "myTest":{
        template:"#box2",
        data(){
          return {
            arr:[1,2,3,4]
          }
        }
      }
    }
  })
</script>
</body>

组件切换:法一

<body>
<div id="app">
  <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=true">登录</a>
  <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=false">注册</a>
  <login v-if="flag"></login>
  <register v-else="flag"></register>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
  Vue.component("login",{
    template:"<h1>登录组件</h1>"
  })
  Vue.component("register",{
    template:"<h1>注册组件</h1>"
  })
  let vm = new Vue({
    el:"#app",
    data:{
      flag: false
    },
    methods:{
    },
  })
</script>
</body>

组件切换:法二

<style>
    .red{
      color:red;
    }
    .v-enter{
      opacity:0;
      transform: translateX(150px);
    }
    .v-leave-to{
      opacity:0;
      transform: translateX(-150px);
    }
    .v-enter-active,
    .v-leave-active{
      transition: all 0.5s;
      position: absolute;
    }
  </style>
<body>
<div id="app">
  <a href="" :class=" rel="external nofollow" rel="external nofollow" {red: flag=='login'}" @click.prevent="flag='login'">登录</a>
  <a href="" :class=" rel="external nofollow" rel="external nofollow" {red: flag=='register'}" @click.prevent="flag='register'">注册</a>
  <!-- vue提供了一个标签 component标签(理解为一个占位符), 用来展示对应名称的组件 :is属性设置指定的组件名 -->
  <transition>
    <component :is="flag"></component>
  </transition>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
  Vue.component("login",{
    template:"<h1>登录组件</h1>"
  })
  Vue.component("register",{
    template:"<h1>注册组件</h1>"
  })
  let vm = new Vue({
    el:"#app",
    data:{
      flag: "login"
    },
    methods:{

    },
  })
</script>
</body>

父组件向子组件传值

<body>
<div id="app">
  <my-component :fromfather="father"></my-component>
</div>
<template id="box1">
  <h1 @click="change">
    {{ fromfather }}
    子组件的数据
  </h1>
</template>
<template id="grandSon">
  <h1>孙子组件的数据</h1>
</template>
<!--1.子组件不能访问父组件的数据
2. 解决办法: ①在引用子组件时, 通过属性绑定 v-bind方法, 把需要传递给子组件的数据以绑定的形式传过来
       ② 在子组件配置项里添加 props: ['传递过来的数据']-->
<script src="lib/vue-2.4.0.js"></script>
<script>
  let vm = new Vue({
    el:"#app",
    data:{
      father:'啊~~这是父组件的数据'
    },
    methods:{
    },
    //局部子组件
    components:{
      // 组件名: {配置项}
      "myComponent":{
        template:'#box1',
        data(){
          return {
            msg:"哈哈"
          }
        },
        //在子组件配置项里添加 props: ['传递过来的数据']
        //注意: 组件中所有的props中的数据, 都是通过父组件传递给子组件的, props中的数据是只读, 无法修改
        props:['fromfather'],
        methods:{
          change(){
            // this.fromfather = "被修改了"
          }
        },
        //局部子子组件
        components:{
          'grandSon':{
            template:'#grandSon'
          }
        }
      }
    }
  })
</script>
</body>

以上所述是小编给大家介绍的Vue全局变量局部变量详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
js调试系列 初识控制台
Jun 18 Javascript
Jquery弹出层插件ThickBox的使用方法
Dec 09 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 Javascript
node.js实现微信JS-API封装接口的示例代码
Sep 06 Javascript
微信小程序实现自定义picker选择器弹窗内容
May 26 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 Javascript
JavaScript常用工具函数大全
May 06 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 #Javascript
Angular Excel 导入与导出的实现代码
Apr 17 #Javascript
详解Vue路由自动注入实践
Apr 17 #Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
Apr 17 #Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 #Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
Apr 17 #Javascript
Vue源码探究之虚拟节点的实现
Apr 17 #Javascript
You might like
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
python实现获取序列中最小的几个元素
2014/09/25 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Django在Model保存前记录日志实例
2020/05/14 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
运动会通讯稿400字
2014/01/28 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
高中生操行评语
2014/04/25 职场文书
保护地球的标语
2014/06/17 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
SpringBoot 集成Redis 过程
2021/06/02 Redis
详解MySQL中的pid与socket
2021/06/15 MySQL
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android