一、is 使用

table、ul、ol、select 这类的不能直接用模板,按照各自的格式写,
在想要用模板的地方 使用 is='row',这样浏览器就不会解析错误 

二、组件中的data

组件中定义 data --组件中的 data 必须是一个函数,而且返回是一个对象,因为组件中的数据是可变的

三、ref引用

1、在标签上使用 ref引用是获取 DOM 元素
2、在组件生使用 ref引用 获取的的该组件的引用

引用的使用:this.$refs 这里代表全部的引用,再根据引用名来具体确定某一个引用
this.$refs.hello

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>组件使用的细节点</title>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
</head>
<body>
	<!-- 	
		1、组件使用可能会出现的bug -- table、ul、ol、select 这类的不能直接用模板,按照各自的格式写,在想要用模板的地方 使用 is='row',这样浏览器就不会解析错误
		2、组件中定义 data --组件中的 data 必须是一个函数,而且返回是一个对象,因为组件中的数据是可变的
	-->
	<div id="root">
		<!-- 
			表面上和自己想要的结果一样,打开浏览器检查代码就会发现row不在table里面
		-->
		<table>
			<row></row>	
			<row></row>
		</table>
		<!-- 
			table、ul、ol、select 这类的不能直接用模板,按照各自的格式写,在想要用模板的地方 使用 is='row',这样浏览器就不会解析错误 
		-->
		<table>
			<tr is='row'></tr>
			<tr is='row'></tr>
		</table>
		<!-- 
			ref 引用,
			1、在标签上使用 ref引用是获取 DOM 元素
			2、在组件生使用 ref引用 获取的的该组件的引用
		-->
		<div ref='hello' @click='handleClick'>sfa</div>
	</div>
	<script type="text/javascript">
		/* 组件中的 data 必须是一个函数,而且返回是一个对象,因为组件中的数据是可变的,都是独立的数据存储 */
		Vue.component('row',{
			data: function () {
				return{
					content:'This is row'
				}
			},
			template:'<tr><td>{{content}}</td></tr>'
		});
		var vm = new Vue({
			el:'#root',
			methods:{
				handleClick:function () {
					console.log(this.$refs.hello.innerHTML)
				}
			}
		});
	</script>
</body>
</html>