1.2.6 • Published 1 year ago

cpage v1.2.6

Weekly downloads
4
License
MIT
Repository
github
Last release
1 year ago

文档地址:https://cpagejs.github.io/cpage/

Cpage.js

Cpage.js是一款轻量级的前端框架,使用TypeScript开发,可以方便地进行组件化开发,语法统一、简介明了,不依赖于第三方框架,适合中小项目开发。框架同时支持es5与es6语法,可参考example中示例。

使用脚手架生成项目

npx happy-web-cli init 项目名称

? 请选择模板 (Use arrow keys)
❯ Cpage.Js项目js版本 
  react:h5 单页面模板 
  react:h5 多页面模板 
  react:后台模板 

选择第一个即可

自定义安装

es6  npm install cpage
     import Cpage,  { Component } from 'cpage'; 
es5  <script src="https://cpagejs.github.io/source/cpage/bundle.js"></script>

组件(es5)

var app = Cpage.component({
    name: 'app',
    components: [],
    template: `<div>{{header}}--{{height}}</div>`,
    data: {
        header: 'this is header'
    },
    props: {
        height: {
            default: 10
        }
    },
    beforeRender() {
        console.log('beforeRender')
    },
    render() {
        console.log('render')
    }
});
Cpage.bootstrap("#app", app);

组件(es6)

import Cpage,  { Component } from 'cpage';
const html = require('./app.html');

export default class App extends Component {
    constructor(){
        super();
        this.name = 'app';
        this.data = {};
        this.templateUrl = html;
    }
    handelC(event){
        this.$event.trigger('header-event', 'header');
    }

    render(){
        
    }
}
Cpage.bootstrap('#app', App);

路由

路由需要使用<div c-view></div> | 方法名 | 用法 | | :------ | :------ | | go() | this.$router.go({path='', params={}}),跳转到已存在的路由页面 | | hash() | this.$router.hash(str),此方法可以更改页面的hash路由 | | reflesh() | this.$router.reflesh(),刷新当前路由 | | back() | this.$router.back(),返回 | 路由示例

Cpage.router([
    {
        path: '/',
        component: Header
    },
    {
        path: '/article',
        component: Article,
        params: {
            id: 123
        },
        cache: true,
        delay: 2000
    },
    {
        path: '/article/:id',
        component: ArticleList
    },
    {
        path: '/about',
        component: About,
        cache: true,
    },
    {
        path: '/footer/oo',
        component: Footer
    }
]);

注册路由之后,可以在组件内使用路由相关函数。

属性

属性名是否必须类型用途
name字符串组件名称,需要使用驼峰命名的规则;比如定义组件名称为cFooter那么子组件应用使用
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

方法

方法名是否必须用途
beforeRender组件完成渲染之前执行
beforeUpdate组件更新之前执行
afterUpdate组件更新之后执行
render组件完成渲染之后执行
bootstrapCpage对象的静态方法,用于将组件渲染到dom中

表达式

支持文字,运算符,变量 {{1+2}} 或者 {{text}} 表达式的变量与组件的data或props属性对应

指令

指令名用法用途
c-事件名c-event="handel()" event可以为click,mouseover...用于dom的事件绑定
c-forc-for="item in items"用于循环输出指定次数的 HTML 元素,表达式必须是数组
c-ifc-if="{{id>10}}"表达式为true,则渲染节点;否则不渲染
c-showc-show="{{id>10}}"表达式为true,则显示节点;否则隐藏
c-refc-ref="btn"节点标识符
c-htmlc-html="span"将表达式内的字符替换节点的html

组件操作

方法名应用范围用途
$data整个组件生命周期修改组件的data属性,例:this.$data('text', 'new text')
$el组件渲染完毕之后才能使用组件节点
$refs组件渲染完毕之后才能使用单个dom节点,例:this.$refs'the-ele',需要配合c-ref使用
$http整个组件生命周期操作http,例:this.$http.ajax({})。支持ajax(),get(),post()等操作
$event整个组件生命周期事件触发和监听,例:this.$event.trigger(事件名,信息) this.$event.listen(事件名, 回调函数)

DOM操作

Cpage.js提供建议的dom操作方式 es6语法

import { Dom } from 'cpage';

Dom('body').css('width')
Dom('body').width('100px')
Dom('body').hasClass('dom')
1.2.6

1 year ago

1.2.5

1 year ago

1.2.3

1 year ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago