温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue 中怎么定义组件模版

发布时间:2021-06-17 16:46:17 来源:亿速云 阅读:165 作者:Leah 栏目:web开发

Vue 中怎么定义组件模版,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

字符串形式

Vue 最简单直接的一种定义组件模版的方式,但是方式写起来很不友好,就像我们以前拼接 HTML 元素是一样的,很痛苦,所以我们并不常用

Vue.component("my-button", {  data: function () {  return {   label: "是兄弟就来砍我"  }  },  template: "<button>{{label}}</button>" });

模版字面量

模版字面量 ES6 语法,与字符串不同的是,我们可以进行多行书写,相对单纯字符串有很大优势,体验更优,但是可能浏览器兼容性会存在问题,需要进行转译为 ES5 语法。

Vue.component("my-content", {  data: function () {  return {   label: "是兄弟就来砍我",   content: "刀刀暴击"  }  },  template: `  <div>   <button>{{ label }}</button>   <span>{{ content }}</span>  </div>  ` });

内联模版(inline-template)

与 「X-template」模版定义方式被称为模版定义的替代品,把内容定义在组件标签元素的内部,而不是作为 slot 内容分发,方式比较灵活,但是给让我们组件的模版与其他属性分离开。

<my-label inline-template>  <span>{{label}}</span> </my-label> Vue.component('my-label', {  data: function () {  return {   label: "赶紧上车吧,兄die"  }  } })

X-template

定义一个 <script> 标签,标记 text/x-template 类型,通过 id 链接。

<script type="text/x-template" id="label-template">  <span>{{label}}</span> </script> Vue.component('my-label', {  template: "#label-template",  data: function () {  return {   label: "赶紧上车吧,兄die"  }  } })

渲染函数

渲染函数需要 JavaScript 完全的编程能力,而且比模版更接近编译,但需要我们非常熟悉 Vue的实例属性,也会更加的抽象。像 v-if v-for 指令就可以用 JavaScript 语法轻松实现。

Vue.component('my-label', {  data: function () {  return {   items: ['来就送!', '来就送!', '来就送!']  }  },  render: function (createElement) {  if (this.items.length) {   return createElement('ul', this.items.map(function (item) {   return createElement('li', item)   }))  } else {   return createElement('p', '活动结束')  }  } })

JSX

相比渲染函数的抽象而言,JSX 比较容易一些,对于熟悉 React 的同学是比较友好的。

Vue.component('my-label', {  data: function () {  return {   label: ["活动结束"]  }  },  render(){  return <div>{this.label}</div>  } })

单文件组件

使用构建工具 cli 创建项目,综合来看单文件组件应该是最好的定义组件的方式,而且不会带来额外的模版语法的学习成本。

<template>  <div>  <ul>   <li v-for="(item, index) in items" :key="index">{{item}}</li>  </ul>  </div> </template> <script> export default {  data() {  return {   items: ["我砍", "我砍", "我砍"]  };  } }; </script>

关于Vue 中怎么定义组件模版问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue
AI