Vue 组件基础完整示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>组件基础</title>
</head>
<body>
<div id="app">
<my-father></my-father>
</div> <template id="son">
<div>
<h1>my-son</h1>
<h3>{{ title }}</h3>
<button @click="test">test $emit()</button>
</div>
</template>
<template id="father">
<div>
<h1>my-father</h1>
<!-- 监听子组件发射的 test 事件 -->
<my-son title="test props" @test="test"></my-son>
</div>
</template> <script src="https://vuejs.org/js/vue.js"></script>
<script> // 一 、新建组件
// 使用组件的第一步就是新建组件
// 全局组件 :使用 Vue.component() 新建的组件是全局组件
// 局部组件 :使用 components 属性挂载子组件
// Vue.extend() :可以新建一个组件对象 // 二 、组件的复用
// 组件的 data 必须是一个函数
// 因为组件复用时使用的是同一个组件实例 ,如果 data 作为一个引用类型的值的话 ,所有的组件将引用同一个 data // 三 、props 自定义组件特性
// props 属性可以为组件自定义特性
// 当一个值传递给一个 prop 特性的时候 ,它就会变成组件实例的一个属性 // 四 、根元素
// 每个组件只能拥有一个根元素 // 五 、监听子组件事件
// 组件可以使用 $emit() 方法发射一个事件 ,然后在父组件中监听这个事件 // 六 、组件名大小写
// 定义组件名的方式有两种
// 使用 kebab-case :Vue.component('my-component-name', { /* ... */ })
// 使用 PascalCase :Vue.component('MyComponentName', { /* ... */ })
// 不管组件名使用的是 kebab-case 还是 PascalCase ,对应的标签名都是 <my-component-name> // 第一步 :新建一个 my-son 组件对象
let MySon = Vue.extend({
template: '#son',
// 第四步 :自定义组件特性
// 使用子组件的时候就可以使用 v-bind 为特性设置值了
props: ['title'],
methods: {
test(){
// 发射一个 test 事件
this.$emit('test')
}
}
}) // 第二步 :新建一个 my-father 全局组件
Vue.component('my-father', {
template: '#father',
// 第三步 :使用 components 属性挂载子组件
components: {
MySon
},
methods: {
test(){
alert('说点什么好呢...')
}
}
}) // 第三步 :定义根组件
new Vue({ }).$mount('#app') </script> </body>
</html>
Vue 组件基础完整示例的更多相关文章
- Vue 组件基础完整示例2
简介此页面可以直接复制运行,包含以下应用: Vue slot插槽使用Vue v-model使用Vue props使用父子组件数据传递element-ui使用HTML方式注册子组件,可以将子组件数据写在 ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Vue组件基础
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- vue组件基础之父子传值
可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...
- Vue.js 学习笔记之四:Vue 组件基础
到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...
- vue组件基础之创建与使用
一.创建组件 <script src="vue.js"></script> <!--引入vue.js文件--> <div id=" ...
- Vue组件基础知识总结
组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...
- vue—组件基础了解
什么是组件? 组件是vue中的一个可复用实例,所以new Vue()是vue中最大的那个组件,根组件,有名字,使用的时候以单标签或双标签使用 vm = newVue() 是最大的组件,具有很多实用性的 ...
- Vue组件的基础用法(火柴)
前面的话 组件(component)是Vue最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ...
随机推荐
- 移动Web前端开发 3移动web开发现状
移动端的手机浏览器内核一般都是Webkit内核,只需要适配Webkit就可以了 适配问题 屏幕尺寸不一
- Cookie操作、ASP.Net文件上传HttpPostedFile
概述 Cookie用来保存客户浏览器请求服务器页面的请求信息. 我们可以存放非敏感的用户信息,保存时间可以根据需要设置.如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止,Cookie ...
- Java集合--TreeSet
转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311268 第1部分 TreeSet介绍 TreeS ...
- C# 截图不失真
Bitmap bmp = new Bitmap(@"E:\2222.jpg"); Bitmap bmp2 = bmp.Clone(new Rectangle(10 + 80, 15 ...
- Python服务器开发 -- 网络基础
Python服务器开发 -- 网络基础 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.... 网络由下 ...
- 2019牛客多校第四场A meeting——树的直径
题意: 一颗 $n$ 个节点的树上标有 $k$ 个点,找一点使得到 $k$ 个关键结点的最大距离最小. 分析: 问题等价于求树的直径,最小距离即为直径除2向上取整. 有两种求法,一是动态规划,对于每个 ...
- SIGAI深度学习第六集 受限玻尔兹曼机
讲授玻尔兹曼分布.玻尔兹曼机的网络结构.实际应用.训练算法.深度玻尔兹曼机等.受限玻尔兹曼机(RBM)是一种概率型的神经网络.和其他神经网络的区别:神经网络的输出是确定的,而RBM的神经元的输出值是不 ...
- 彻底搞清楚setState
setState最常见的问题是,是异步的还是同步的? setState在React.Component中的函数,是同步函数.但是我们调用的时候,不同的传参和不同的调用位置都会导致不同的结果. 从页面看 ...
- .net SerialPort
虚拟串口并定时向虚拟串口定时发数据 http://scorpiomiracle.iteye.com/blog/653923 C#中如何使用SerialPort控件向单片机发送数据? http://zh ...
- [Luogu] LCA
https://www.luogu.org/problemnew/show/P4211 baoli #include <iostream> #include <cstdio> ...