Cpage.js 目前支持的组件属性

属性名 是否必须 类型 用途
name 字符串 组件名称
components 数组 子组件名称集合
data 对象 组件属性
props 对象 用于子组件与父组件之间的数据传递
style 字符串 组件样式
styleId 字符串,id选择符 组件样式,es5语法
styleUrl 数组或对象 组件样式,es6语法,支持import * as css from ''; 或者require('../style.css'),需要引入css-loader
template 字符串 组件模板,es5,es6通用
templateId 字符串,id选择符 组件模板,es5语法
templateUrl 数组或对象 组件模板,es6语法,支持import * as html from ''; 或者require('../xx.html'),需要引入html-loader

# name 组件名称

组件名称,需要使用驼峰命名的规则;比如定义组件名称为cFooter那么在父组件应用使用

子组件

constructor(){
  super();
  this.name = 'cFooter';
}

父组件 可以直接赋值

// 导入组件
import cFooter from "./cFooter";

// 使用组件
export default class Article extends Component {
  constructor(){
    super();
    this.components = [cFooter]; // 加载子组件
    this.template = `<c-footer />`;
  }
}

# props 父组件向子组件传递属性

父组件定义props

constructor(){
  super();
  this.name = 'article';
  this.props = {
    text: {
      type: 'string',
      default: 'demo'
    }
  };
  this.template = `<div>{{text}}</div>`;
}

子组件中使用props 可以直接赋值

constructor(){
  super();
  this.name = 'article';
  this.template = `<article text="demo text"></article>`;
}

也可以使用变量,变量需要使用两个大括号{{}}包裹

constructor(){
  super();
  this.name = 'article';
  this.data = {
    textProps: 'text demo'
  };
  this.template = `<article text="{{textProps}}"></article>`;
}