美文网首页
1-1 vue定义组件模板的七种方式

1-1 vue定义组件模板的七种方式

作者: 绣依锐 | 来源:发表于2018-08-27 20:35 被阅读0次

1、单文件组件

<template>
<div class="title">{{this.title}}</div>
</template>
<script>
export default { 
    data() {
        return {title: '单文件组件' }
    }
}
</script>

2、x-template

另一个定义模板的方式是在一个 <script>元素上,并为其带上 text/x-template 的类型,然后通过一个 id 将模板引用过去。例如: 元素中,并为其带上 text/x-template 的类型,然后通过一个 id 将模板引用过去 元素中,并为其带上 text/x-template 的类型,然后通过一个 id 将模板引用过去 元素中

<script type="text/x-template" id="hello">
<div class="title">{title}}</div>
</script>
Vue.component('custom-component03',{
    template: '#hello',
    data() { return {title: 'x-template' } }
});
<custom-component03></custom-component03>

3、字符串

默认情况下,模板会被定义为一个字符串

Vue.component('custom-component01', {
    template: `<div>{{title}}</div>`,
    data() { return {title: 'Check me' } }
});
<custom-component01></custom-component01>

4、模板字面量

ES6 模板字面量允许你使用多行定义模板,这在常规 JavaScript 字符串中是不被允许的。此方式阅读体验更佳,并在许多现代浏览器中得到支持,不过安全起见你还是需要把代码转换成 ES5 。

Vue.component('custom-component02', {
    template: `
    <div>
        <div class="title">{{this.title}}</div>
       <div :class="{ checkbox: checkbox}"></div>
    </div>`,
    data() { return {title: '模板字面量' ,checkbox: true} }
});
<custom-component02></custom-component02>

5、内联模板inline-template

当 inline-template 这个特殊的特性出现在一个子组件上时,这个组件将会使用其里面的内容作为模板,而不是将其作为被分发的内容

<script>
Vue.component('custom-component04', { 
  data(){ return {title:'内联模板!'} } 
})
</script>
<custom-component04   inline-template>
    <div class="title">{{title}}</div>
</custom-component04>

不过,inline-template 会让你模板的作用域变得更加难以理解

6、渲染函数(Render)

渲染函数需要你把模板当作一个JavaScript对象来进行定义,它们是一些复杂并且抽象的模板选项。
然而,它的优点是你定义的模板更接近编译器,你可以使用所有JavaScript方法,而不是指令提供的那些功能。

<script>
Vue.component('custom-component05', {
    data(){
        return { 'title':'渲染函数'}
    },
    render(createElement) {
        return createElement( 'div', { attrs: { 'class': 'title' } }, [ this.title ] );
    }
})
</script>
<custom-component05></custom-component05>

7、JSX语法

<script>
Vue.component('custom-component05', {
  data(){
      return { title:'我是jsx模板'}
  },
  render() {
      return <div>
        {this.title}
      </div>
  }
})
</script>

相关文章

  • 1-1 vue定义组件模板的七种方式

    1、单文件组件 2、x-template 另一个定义模板的方式是在一个 元素上,并为其带上 text/x-tem...

  • vue05

    vue2.0变化 在每个组件模板,不在支持片段代码 关于组件定义 Vue.extend 这种方式,在2.0里面有...

  • Vue 自定义组件模板的七种方式

    参考来源 7 Ways to Define a Component Template in Vue.js - Vu...

  • Vue Component 组件模板定义方式

    在Vue Component 中,可以将组件的模板于js代码定义在一起,这样,便于组件独立使用。但这样的不足是ht...

  • vue 自定义组件(一)全局、局部组件

    vue自定义组件分为局部组件和全局组件 全局组件 全局组件格式template 是模板props 是自定义组件用到...

  • Vue.js破冰系列-6组件基础(二)

    1单文件组件 前面在vue.js破冰系列2中提到HTML模板有4中方式定义,分别是:在挂载点内定义模板、在temp...

  • Vue学习之内联模板

    Vue学习之内联模板 在vue框架中,模板的位置有两种,一种是在组件内部定义,一种是在组件外部定义。我们首先来看内...

  • Vue常用模式

    组件定义 SFC 单文件组件 SFC 字符串模板或 ES6 模板字面量 渲染函数 JSX 语法糖 Vue 类组件装...

  • 路由嵌套

    模板抽离 我们已经学习过了Vue模板的另外定义形式,使用。 然后js里定义路由组件的时候: // 1. 定义(路由...

  • vue组件

    组件 定义一个组件a.vue,模板如下: 在另外一个组件中引入组件,然后再定义组件,再写入布局中 如: 循环 ...

网友评论

      本文标题:1-1 vue定义组件模板的七种方式

      本文链接:https://www.haomeiwen.com/subject/yntfbftx.html