标签:asc 对象 javascrip ext 介绍 oba key 语法规则 前端入门
<div id="app">
<!-- 连接语法:提倡用 - 链接 -->
<local-tag></local-tag>
<local-tag></local-tag>
</div>
<script>
//一个满足VUE语法规则的对象就是一个组件
var localTag = {
data () {
return {
count: 0
}
},
template: ‘<button @click="btnAction">局部{{ count }}</button>‘,
methods: {
btnAction () {
this.count ++
}
}
}
new Vue({
el: "#app",
components: {
// 在根组件中注册子组件
‘local-tag‘: localTag
}
})
</script>
<div id="app">
<global-tag></global-tag>
<global-tag></global-tag>
</div>
<script>
// 用Vue.component("组件名", {})来创建全局组件
// 全局组件附属于Vue实例,可以不需要注册就可以使用
Vue.component(‘global-tag‘, {
data () {
return {
count: 0
}
},
template: ‘<button @click="btnAction">全局{{ count }}</button>‘,
methods: {
btnAction () {
this.count ++
}
}
})
new Vue({
el: "#app"
})
</script>
<div id="app">
<global-tag :sup_data1=‘sup_data1‘ :supData2=‘sup_data2‘></global-tag>
</div>
<script type="text/javascript">
// 1.给在父组件中出现的子组件名定义标签的全局属性
// 2.在父组件中给全局属性赋予子组件需要的数据
// 3.在子组件内部,通过props拿到标签中的全局属性名
Vue.component(‘global-tag‘, {
props:[‘sup_data1‘, ‘supdata2‘],
template: ‘<div>{{ sup_data1 }} {{ supdata2 }}</div>‘
})
new Vue({
el: ‘#app‘,
data: {
sup_data1: ‘数据1‘,
sup_data2: ‘数据2‘
}
})
</script>
<div id="app">
<global-tag @send_action=‘receiveAction‘></global-tag>
</div>
<script type="text/javascript">
// 1.数据由子级提供
// 2.在子级中通过某个事件对外(this.$emit("事件名", ...args))发送一个事件
// 3.在父级的模板中,子组件名上,为发送的事件绑定一个回调方法,该回调方法由父级来完成实现体
// 4.在实现体中就可以拿到回调参数
Vue.component(‘global-tag‘, {
data () {
return {
sub_data1: "数据1",
sub_data2: ‘数据2‘
}
},
template: ‘<div @click="clickAction">发生</div>‘,
methods: {
clickAction () {
this.$emit(‘send_action‘, this.sub_data1, this.sub_data2)
}
}
})
new Vue({
el: ‘#app‘,
methods: {
receiveAction (v1, v2) {
console.log(v1, v2)
}
}
})
</script>
<div id="app">
<div>
<input type="text" v-model="val">
<button type="button" @click="submitMsg">提交</button>
</div>
<ul>
<todo-list v-for="(v, i) in list" :key="i" :v="v" :i="i" @delect_action1="delect_action2"></todo-list>
</ul>
</div>
<script type="text/javascript">
Vue.component("todo-list", {
template: "<li @click=‘delect_action‘><span>第{{ i + 1 }}条: </span><span>{{ v }}</span></li>",
props: [‘v‘, ‘i‘],
methods: {
delect_action () {
this.$emit("delect_action1", this.i)
}
}
})
new Vue({
el: "#app",
data: {
val: "",
list: []
},
methods: {
submitMsg () {
// 往list中添加input框中的value
if (this.val) {
this.list.push(this.val);
this.val = ""
}
},
delect_action2(index) {
this.list.splice(index, 1)
}
}
})
</script>
DAY67-前端入门-javascript(十三) vue03
标签:asc 对象 javascrip ext 介绍 oba key 语法规则 前端入门
原文地址:https://www.cnblogs.com/xvchengqi/p/9879079.html