您的位置:首页 > 产品设计 > UI/UE

vue component为什么官网的自定义组件不显示及各种自定义组件写法?

2017-11-08 17:16 555 查看
基于Vue2的官网。




官网这样写的不显示:因为你还没有一个vue实例对象,也就是主模板,也没有挂载到文档中。因为没有新建Vue对象,浏览器并不会自动识别Vue对象里有的方法,所以要new一个。el就是相当于Js中的element

<ol id="todoItem1">
<!-- 创建一个 todo-item 组件的实例 -->
<todo-item></todo-item>
</ol>
<ol id="todoItem">
<!-- 创建一个 todo-item 组件的实例 -->
<todo-item></todo-item>
</ol>
<script>
//定义todo-item组件
Vue.component('todo-item', {
template: '<li>这是个待办事项</li>'
});

//定义模板后,必须实例化,不然是不显示的。
var vm = new Vue({
el: '#todoItem1'
});
new Vue({
el: '#todoItem'
});
</script>

二:下面的写法也是可以的

<div id='app21'>

             <v-header></v-header>

        </div>

        <script type="text/javascript">

            Vue.component('vHeader', {

                template: '<div>A custom component!</div>'

            });

            new Vue({

                el:'#app21',

            });

        </script>

三:另外一种写法

<div id="component1">
<h1>
4000
;这里是另外一个模板测试</h1>
<global-component></global-component>   <!-- 这里也插入了这个组件,全局注册的组件可以在所有晚于该组件注册语句构造的 Vue 实例中使用 -->
</div>
<div id="component2">
<h1>这里是模板测试</h1>
<global-component></global-component>  <!-- 使用自定义标签在 Vue.js 模板中插入组件,编译时,这部分内容会被替换为组件的内容 -->
</div>

<template id="global-template">  <!-- 此 DOM 元素的 innerHTML 作为全局注册组件的模板 -->
<div>
组件内部 msg 文本内容为 {{msg}},和父组件无关!不信改改看:<!-- 和普通 Vue.js 模板一样,可以进行插值 -->
<input type="text" v-model="msg" />  <!-- 和普通 Vue.js 模板一样,也可以进行表单数据绑定 -->
</div>
</template>
<script type="text/javascript">
Vue.component("global-component",{ //使用语法糖(只使用扩展实例选项)全局注册组件
data: function(){ //Vue 扩展实例构造器的 data 选项,必须是一个工厂函数,返回数据对象
return {
msg: 'Hi, Vue.js'
}
},
template: "#global-template"  //template 是模板,可以是包含 HTML 代码的字符串,也可以是 # + id,如果是 # + id,则会使用该选择子匹配的 DOM 元素的 innerHTML 作为模板
});
new Vue({
el: "#component1"
});
new Vue({
el: "#component2"
});
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐