zoukankan      html  css  js  c++  java
  • Vue Render函数用法示例

    虽然在render里使用createElement函数创建DOM节点不是很直观,但是在部分独立组件的设计中还是可以满足一些特殊需求的。一个简单的render示例如下:

     1 <!DOCTYPE html>
     2 <html lang="zh-CN">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>Document</title>
     8 </head>
     9 <body>
    10     <div id="app">
    11         <my-component :list="list"></my-component>
    12     </div>
    13     <script src="vue.js"></script>
    14     <script>
    15         Vue.component('my-component', {
    16             props: {
    17                 list: {
    18                     type: Array,
    19                     default: () => []
    20                 }
    21             },
    22             render(createElement) {
    23                 if (this.list.length) {
    24                     return createElement('ul', this.list.map(item => createElement('li', item)))
    25                 } else {
    26                     return createElement('p', 'Empty list')
    27                 }
    28             }
    29         })
    30         new Vue({
    31             el: '#app',
    32             data: {
    33                 list: ['html', 'css', 'javascript']
    34             }
    35         })
    36     </script>
    37 </body>
    38 </html>

     另外,由于v-if,v-else,v-show等指令都无法在render里使用,需要自己手动实现,拿常用的v-model举个栗子:

     1 Vue.component('my-component', {
     2     data() {
     3         return {
     4             message: ''
     5         }
     6     },
     7     render(createElement) {
     8         return createElement(
     9             'div',
    10             [
    11                 createElement(
    12                     'input',
    13                     {
    14                         on: {
    15                             input: e => this.message = e.target.value
    16                         }
    17                     }
    18                 ),
    19                 createElement('p', this.message)
    20             ]
    21         )
    22     }
    23 })
  • 相关阅读:
    virtual
    微软MBS intern笔试
    Ubuntu Linux Green hand
    Coding style
    abstract
    Jquery Ajax请求标准格式
    Hashtable的简单实用
    C#中GET和POST的简单区别
    WIN7 64位机与32位机有什么区别
    一个加密解密类
  • 原文地址:https://www.cnblogs.com/viewts/p/11208452.html
Copyright © 2011-2022 走看看