首页 > 其他分享 >Vue2 组件总结

Vue2 组件总结

时间:2023-02-28 22:46:12浏览次数:51  
标签:总结 function components title Vue2 组件 data quill

注册全局组件

  • 使用 Vue.component(...) 的方式创建全局组件,注册属性,创建模版

  • props 属性:父组件传递数据到子组件。高级内容:Prop属性、Prop验证等

  • this.$emit:将事件传递给父级组件

  • <slot></slot>插槽

<div id="app">
	<button-counter title="title1 : " @clicknow="clicknow">
		<h2>hi...h2</h2>
	</button-counter>
	<hr/>
	<button-counter title="title2 : "></button-counter>
</div>


<script>
 // 全局注册
Vue.component('button-counter', {
	props: ['title'],	// 接收父组件传值
	data: function () {
		return {
		  count: 0
		}
	},
	template: `<div><h1>hi...</h1>
		<button v-on:click="clickfun">
		{{title}} You clicked me {{ count }} times.</button>
		<slot></slot>
		</div>`,
	methods:{
		clickfun : function () {
			this.count ++;
			this.$emit('clicknow', this.count);	// 给父组件传递事件
		}
	}
})
  
var vm = new Vue({
	el : "#app",
	data : {
		
	},
	methods:{
		clicknow : function (e) {
			console.log(e);
		}
	}
});
</script>

注册局部组件

按需引入组件:创建 Vue 实例时,使用 components 属性指定要使用的组件

<div id="app">
  <test></test>
</div>


<script>
  new Vue({
    el: '#app',
    components: {
      'test': {
        data: function() {
          return {
            title: 'local-scope-component'
          }
        },
        template: '<h2> {{ title }} </h2>'
      }
    }
  })
</script>

单文件组件

创建单文件组件

<template>
	<div>
		<h1> {{title}} </h1>
		<h2> {{ msg }}</h2>
	</div>
</template>

<script>
	export default {
		name: 'testComponent',
		data: function() {
			return {
				title: ' test component '
			}
		},
		props: {
			msg: {
				type: String,
				default: ' [msg] '
			}
		}
	}
</script>

<style>
</style>

局部引入:

<template>
	<testComponent msg="mmmm"></testComponent>
</template>

<script>
	import testComponent from './components/test.vue'

	export default {
		name: 'App',
		components: {
			testComponent
		}
	}
</script>

练手:封装 quill 富文本组件

npm i quill -S

version: ^1.3.7

  1. 封装组件
<template>
	<div class="editors">
		<div id="editor"></div>
	</div>
</template>

<script>
	import Quill from 'quill'
	import 'quill/dist/quill.snow.css'
	
	export default {
		props: {
			value: {
				type: String
			}
		},
		name: 'editorQuill',
		data: function() {
			return {
				quill: undefined
			}
		},
		mounted: function() {
			this.initEditor()
		},
		methods: {
			initEditor() {
				this.quill = new Quill('#editor', {
					theme: 'snow'
				});
				// 这样初始化不是一种好方法
				this.quill.setContents([{
					insert: this.value
				}])
				// this.$emit 有报错
				this.quill.on('text-change', () => {
					this.$emit('change', this.quill.getContents())
				})
			}
		}
	}
</script>

<style scoped>
	.editors {
		width: 450px;
	}
</style>
  1. 引入并使用
<template>
	<editor @change="changeEditor" v-bind:value="content">
		</editor>
</template>

<script>
	import editor from '@/components/outer/editor.vue'

	export default {
		name: 'App',
		data: function() {
			return {
				content: 'engure'
			}
		},
		components: {
			editor
		},
		methods: {
			changeEditor(tex) {
				console.log(tex)
			}
		}
	}
</script>

<style>
</style>

要点:封装组件的同时还需要考虑数据的出入

标签:总结,function,components,title,Vue2,组件,data,quill
From: https://www.cnblogs.com/engure/p/17166354.html

相关文章

  • 今日总结2023/02/28
    今日进行了记事本用户登录界面的绘制主要是在activity_main.xml中进行了布局的嵌套,组件的搭配和页面设计。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxml......
  • 2023.2.28周二每日总结
    今天下午的课上学习了python的一些基础,知道了python中存储数据的方法,即每个数据存在一个独特的地址不需要提前申请变量,包裹一些列表的乘法是怎么分配的,并且进一步学习了ja......
  • 第三周星期二每日总结
    Javaweb简易程序的完善:   今日完善了上周测试的web程序修改功能,做出了最终的修改功能,对于修改功能一直是我以前不太会的点,之前我会修改的函数的编写,但是不太明确在j......
  • 每日总结 2.28
    今天学习python的基础语法数据类型的学习,学习了数组的计算和地址查找。课后回到宿舍学习了java编写app的逻辑代码。packagecom.example.xx.frg_recod;importandroi......
  • 2/28每日总结
    今天上学习了数据库原理和英语准备四级,但下午发烧严重就请了半天假,晚上退烧之后学习了Android的布局的代码:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmln......
  • 2.28每日总结——安卓
       今天,简单了解了一下线性布局,还学习了一下昨天上课的内容(最长英语链接龙),简单的实现了几个单词的写入与输出。还没法实现《飘》的接龙。安卓这块还没怎么学,接下来......
  • 代码随想录训练营day 3|59.螺旋矩阵II 加 数组总结篇
    59.螺旋矩阵II题目链接:59.螺旋矩阵II题目描述:给定一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入:3输出:[[1,......
  • LeetCode算法训练-回溯总结
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯总结适用问题组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问......
  • LeetCode算法训练-回溯总结
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯总结适用问题组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割......
  • 2023.2.28每日总结
    package课堂练习01;importjava.applet.Applet;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava......