vue组件使用细节
ref
当ref写在一个标签元素中,通过this.$refs.name 获取的是标签对应的dom元素
<section id="app"
ref="froggy"
@click="handleClick"
>{{name}}</section> <script>
var vm = new Vue({
el: "#app",
data:{
name:"emit"
},
methods:{
handleClick: function() {
console.log(this.$refs.froggy)
alert("this.$refs.froggy")
}
}
})
</script>
当ref写在一个组件上的时候。获取的是一个子组件的引用
<section id="app"
ref="froggy"
>
<counter @change="handle" ref="one"></counter>
<counter @change="handle" ref="two"></counter>
{{name}}</section> <script> Vue.component("counter", {
template:"<div @click='handleClick'>{{number}}</div>>",
data:function() {
return {
number: 0
}
},
methods: {
handleClick: function() {
this.number++
this.$emit("change")
}
}
}) var vm = new Vue({
el: "#app",
data:{
name:"0"
},
methods:{
handle: function() {
this.name = this.$refs.one.number + this.$refs.two.number
}
}
})
</script>
is = " 子组件名称"(属性)
H5有一些编码规范
<ul> --<li>
<ol> --<li>
<select> --<option>
<table> --<tbody> -- <tr> --<td>
非子组件中定义data要用function + return
子组件不像根组件只调用一次,子组件会被不断调用,不希望子组件中数据冲突
每个子组件都有独立的数据存储,多个子组件间互相影响
父子组件传值
父 --- 子 通过属性形式传递 // 子组件不能修改父组件传递过来的参数(万一是引用类型)
子组件可以在自己的数据内clone一份 然后更改
<article class="app">
<counter :count="0"></counter>
</article> <script> var counterr = {
props:["count"],
template:"<section @click='handle'>{{number}}</section>",
data: function () {
return {
number: this.count
}
},
methods: {
handle:function() {
this.number++
}
}
} var vm = new Vue({
el: ".app",
data:{ },
components:{
counter:counterr
}
})
</script>
子组件通过时间触发机制向父组件传值
this.$emit("事件名称",传递参数,可以多个)
子组件上; @事件名称=“父组件调用的函数”
组件参数校验
父组件向子组件传递参数的时候,子组件可以对数据进行约束
props: {
content: {
type: String, 类型
required: false //must send
default: "default" //默认值
validator: function(value) {
return value.length > 5 //验证器 true 返回 自定义效验器
}}
非props特性
父子组件之间props有个对用关系 为props特性
- 不会在dom标签上显示
- {{content}} this.content 可以拿到数据
子组件不定义。不接受父组件传过来content。子组件不能使用数据
会显示在dom中
组件绑定原生事件
< child @click.native="handleClick"> 自定义click事件 后面加一个native修饰符。
非父子组件传值
框架
总线/bus/发布订阅模式/观察者模式
vue组件使用细节的更多相关文章
- Laravel 项目中编写第一个 Vue 组件
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 R ...
- 深入理解 Vue 组件
深入理解 Vue 组件 组件使用中的细节点 使用 is 属性,解决组件使用中的bug问题 <!DOCTYPE html> <html lang="en"> ...
- 滴滴开源 Vue 组件库— cube-ui
cube-ui 是滴滴去年底开源的一款基于 Vue.js 2.0 的移动端组件库,主要核心目标是做到体验极致.灵活性强.易扩展以及提供良好的周边生态-后编译. 自 17 年 11 月开源至今已有 5 ...
- vue组件中—bus总线事件回调函数多次执行的问题
在利用vue组件进行事件监听时发现,如果对N个vue组件实例的bus总线绑定同一事件的回调函数,触发任意组件的对应事件,回调函数至少会被执行N次,这是为什么呢? 为此,调研了普通对象的事件绑定和触发实 ...
- 2.基础:Vue组件的核心概念
一.组件基础和注册 组件概念 组件系统是 Vue 的另一个重要概念,他的核心就是封装和复用. 细节 组件的name必须是全局唯一. 二.属性.事件和插槽 组件的三大核心概念:属性.事件和插槽. 属性, ...
- 深入理解Vue组件3大核心概念
摘要: 搞懂Vue组件! 作者:浪里行舟 原文:详解vue组件三大核心概念 Fundebug经授权转载,版权归原作者所有. 前言 本文主要介绍属性.事件和插槽这三个vue基础概念.使用方法及其容易被忽 ...
- vue组件开发练习--焦点图切换
1.前言 vue用了有一段时间了,开发的后台管理系统也趋于完善,现在时间比较算是有点空闲吧!这个空闲时间我在研究vue的另外的一些玩法,比如组件,插件等.今天,我就分享一个组件的练手项目--焦点图切换 ...
- 第四章、深入理解vue组件
4-1.使用组件的细节 a.使用is解决html出现bug 如下 table下面应该为tr,所以页面渲染的时候没有找到tr是有问题的,所以是有小bug,所以table中必须是tr b.改上面bug,t ...
- vue组件库用markdown生成文档
前言: 开发vue组件库需要提供组件的使用文档,最好是有渲染到浏览器的demo实例,既能操作又能查看源代码.markdown作为常用的文档编写载体,如果能在里面直接写vue组件,同时编写使用说明就再好 ...
随机推荐
- 偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
今天申请了博客园账号,在下班后阅览博客时发现了一个关于百度面试题探讨的博客(其实是个很基础的问题),此博客url为:http://www.blogjava.net/nokiaguy/archive/2 ...
- redis.conf文件配置
最重要三个配置 1. bind 127.0.0.1 需要注释掉这一行,使别的主机可以访问 2. daemonize no 需要改为yes,使其后台运行 3. requirepass foobared ...
- ArcoLinux美化教程
ArcoLinux美化教程 1. 前言 ArcoLinux已经足够美观,这里主要是讲解如何配置桌面特效 2. 安装compiz $ yay -S compiz 3. 用compiz替换xfwm4 编辑 ...
- LeetCode160 相交链表(双指针)
题目: click here!!题目传送门 思路: 1.笨方法 因为如果两个链表相交的话,从相交的地方往后是同一条链表,所以: 分别遍历两个链表,得出两个链表的长度,两个长度做差得到n,然后将长的链表 ...
- JavaScript中的apply()方法和call()
apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域 两个函数的第一个参数是都是,要执行语句的作业域,即this 区别是 apply后面只能传一个大参数,call后面参数只能一 ...
- 【pwnable.kr】input
这道题是一道一遍一遍满足程序需求的题. 网上其他的题解都是用了C语言或者python语言的本地调用,我想联系一下pwntools的远程调用就写了下面的脚本, 执行效果可以通过1~4的检测,到最后soc ...
- Ajax学习系列——jQuery中Ajax的请求方式
在jQuery中,Ajax常见的请求方式主要有4种. 1.$.ajax()返回其创建的XMLHttpRequest对象. $.ajax({ type:"POST", content ...
- Essay引用如何最大限度的降低抄袭率
今天要说到让无数人恨得要死.为了降重改的哭天喊地的“Paraphrase”.毕竟引用不是打两个引号复制粘贴就能凑字数完事的,无论国内外,都有查重率这个大敌在等着你.想要引用别人的论点论据,就少不了需要 ...
- Ajax请求传递数组参数的方法
方法一:拼接字符串参数 var arr={params:['param','param2']}; $.ajax({url:请求地址, data:arr, type:"POST", ...
- java 学生信息管理
题目: 一.测试要求: 1.按照测试内容要求完成程序的设计与编程: 2.将最终结果的源文件(.java)文件上传到以班级为单位,保存源程序. 3.建立学号姓名文件夹,如: ...