Vue.js的组件(slot/动态组件等)、单文件组件、递归组件使用
一、组件
1> 组件命名方式有两种(注意:在DOM模板中只有kebab-case命名方法才生效):
html中引用组件:
<!-- 在DOM模板中,只有 kebab-case命名才生效 -->
<my-component-name></my-component-name> script:
Vue.component('my-component-name',{
template:'<div>这是第一种命名方式:kebab-case</div>'
/* ... */
}) html中引用组件:
<my-component-name></my-component-name> script:
/* 根据大写字母隔开,my-component-name */
Vue.component('MyComponentName',{
template:'<div>这是第二种命名方式:PascalCase</div>'
/* ... */
})
2> 全局组件与局部组件:
/*
* 全局组件可以在根组件的任何子组件中使用
*/
Vue.component('component-a',{/* ...组件相关配置... */})
/*
* 局部组件只能在当前注册的组件实例中生效,在其子组件中也不生效
*/
var componentb = { /* ...组件相关配置... */ }
var vm = new Vue({
el:'#app',
'component-b':componentb /* 局部注册组件 */
})
3> 动态组件(component)
4> 插槽(slot)
二、单文件组件
1> 组成:单文件组件有 模板(<template></template>)、脚本(<script></script>) 与 样式(<style><style>) 组成
<!-- 这是一个单文件组件 -->
<template>
<div>模板中只允许一个根元素,可以在这个根元素中进行编写DOM结构</div>
</template> <script>
/* export default:默认导出对象;在这里进行vue的相关选项配置与逻辑编写 */
export default{
name: 'App'
}
</script> /*
* scoped:表示样式代码只在该组件中生效
* lang='stylus':表示样式使用stylus格式进行编写css
*/
<style lang='stylus' scoped>
/* >>> 3个箭头表示修改外部样式(.样式2) */
.样式1 >>> .样式2
background:red
</style>
2> 单文件组件的注册(局部注册):
<template>
<div>
<!-- 引入组件 -->
<test-component> </test-component>
</div>
</template> <script>
import TestComponent from '需要引入的组件路径'
export default{
name: 'App',
components : {
TestComponent /* 与写法 TestComponent:TestComponent 一致,es6新特性 */
}
}
</script> <style lang='stylus' scoped> </style>
三、递归组件
Vue.js的组件(slot/动态组件等)、单文件组件、递归组件使用的更多相关文章
- vue.js中的slot
vue.js 中的 slot 一.slot 的作用 调用组件的时候,对于数据,我们会用props将数据从父组件传至子组件.但是,如果从父组件到子组件,单纯是页面局部渲染的改变,slot会更合适. 二. ...
- Vue.js 作用域、slot用法(单个slot、具名slot)
作用域 在介绍slot前,需要先知道一个概念:编译的作用域.比如父组件中有如下模板: <child-component> {{message}} <child-component&g ...
- vue单文件组件实例1:简单单文件组件
HelloWorld.vue: <template> <div class="hello"> <h1>{{msg}}</h1> ...
- vue.js 利用SocketCluster实现动态添加数据及排序
直接上代码 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- Vue.js 学习笔记 第6章 表单与v-model
本篇目录: 6.1 基本用法 6.2 绑定值 6.3 修饰符 表单类控件承载了一个网页数据的录入与交互,本章将介绍如何使用指令v-model完成表单的数据双向绑定. 6.1 基本用法 表单控件在实际业 ...
- vue单文件组件实例2:简单单文件组件
Introduce.vue: <template> <div class="intro"> 单位介绍 </div> </templat ...
- js与jquery的动态加载脚本文件
jquery动态加载 jQuery.getScript(url,[callback]) js动态加载 function loadJs(name) { document.write('<scrip ...
- Vue.js学习笔记 第七篇 表单控件绑定
本篇主要说明表单控件的数据绑定,这次没有新的知识点 文本框 1.普通文本框 <div id="app-1"> <p><input v-model=&q ...
- vue.js之组件(上篇)
本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星! https://github.com/zwl-jasmine95/Vue_test 以下所有知 ...
随机推荐
- 本原串(hdu 2197)
本原串 题目链接 思路: 反向想将总的个数减去不符合要求的个数.我们枚举n的约数,然后把n平均分,就可以构成不符合要求的串,\(g[i]\)表示循环节长为i约数的个数\(2^i\),我们要求循环节为\ ...
- 【LeetCode】647. Palindromic Substrings 解题报告(Python)
[LeetCode]647. Palindromic Substrings 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/p ...
- Shortest Path(hdu5636)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- 第二十一个知识点:CRT算法如何提高RSA的性能?
第二十一个知识点:CRT算法如何提高RSA的性能? 中国剩余定理(The Chinese Remainder Theorem,CRT)表明,如果我们有两个等式\(x = a \mod N\) 和\(x ...
- [linux]ubuntu18.04 屏幕分辨率不适应问题
今天换了新显示器,发现更大的屏幕不适应原有的屏幕分辨率,看起来特别变扭. 在设置处查看最高分辨率仅为1024*748,没有与屏幕相适应的1920*1080(16:9). 解决方式: 1. 终端输入命令 ...
- 图像处理opencv-Rect 排序、合并[转]
opencv进行rect检测时,当检测到多个rect,组成rect vector之后,有些rect是由一个区域误分割得到的, 可以按照某种规格将这些rect合并为一个rect.比如按照x,y,widt ...
- JS运行三部曲(预编译)
JS运行的三个步骤: 语法分析 预编译 解释执行 语法分析:通俗来说就是通篇检查你的代码有没有语法错误,有语法错误的话,程序是不会执行的 解释执行:也就是程序读一句执行一句 最重点的也就是预编译了,那 ...
- Ranger-Solr审计日志安装
使用RangerAdmin安装solr,基于已有的solr环境安装,主要是在solr创建用于存储数据的CoreAdmin. # 1.解压安装 在solr的安装机器上面,获取RangerAdmin并且解 ...
- PowerShell 管道符之Select的使用方法【二】
这次讲解Select中的第二个方法:String 在我们的ISE编辑器中输入如下命令 Select-String - 可以了解到,原来这是正则表达式,它提供了一些额外的正则方法.具体如何使用,可以自行 ...
- LINUX学习-Nginx+JDK+Tomcat+Mysql搭建JAVA WEB
一.安装JDK环境 1.先到 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 下载linux jdk-8u2 ...