vue技术体系开发必读

在平台中开发的前端页面都是有数据流data和组件构成的,数据流就是数据的提供者,提供的数据用来可被观察。对于vue技术体系的页面来说,组件通过ref、reactive引用数据,通过可被观察的方式进行渲染。即vue的渲染体系是,用可追踪的数据进行渲染,当数据变化后会根据追踪的数据重新渲染相关的组件。

vue体系的页面开发时如下划分:

设计:可视化设计页面

源码:.w源码(vue中的render函数)

js:设计可视部分的业务逻辑

data.js:纯数据逻辑

css:页面样式

主要是js和data.js的不同

js

js中是辅助页面的逻辑,setup scoped片段。主要有:

1.页面生命周期逻辑,如onLoad、onInitState等

2.用户操作产生的回调event、click,回调行等,如:按钮的onClick回调

3.页面中的简单逻辑,补充页面的动态效果,如:返回js片段

vue中是use型的API就是hooks,没有类的概念,定义的都是函数和局部变量,因此是没有this,页面page相关的,需要使用this时需要用$page,如下:
       $page.getUIUrl("$UI/XXX")//url转换

       $page.navigateTo({url:"XXXX"})//打开页面

       $page.getServiceUrl("/main/XXX")//API转换

       $page.request({})//发请求

       $page.comp("context1")//获取组件
若返回js片段,js与.w在同一个作用域,所以在.w中调用时直接写函数名即可.如下:

按钮的图标动态渲染,.w中的调用
    <antdv:Button text="按钮" id="button6" icon="{MyCompRender()}"></antdv:Button>
 js中的定义
    let MyCompRender = ()=>{
        return "down-circle,outlined";
    }
在js中如果要使用data需要用useData获取数据组件,然后在需要使用的地方就可以直接通过变量调用,注意不能在使用的函数中通过useData获取。如:

在实现渲染的js片段中使用
    let MyCompRender = ()=>{
        return <Layout><Layout.Content><Button>test render {mainData?.current?.fid}</Button></Layout.Content></Layout>
    }
在按钮事件中使用
    let onButton5Click = (event) => {
        mainData.setValue("state",1);
        mainData.getCurrentRow();
        mainData.next();
    }

data.js

data.js是在渲染之前执行的,不能操作ui,纯数据逻辑。

数据集组件的事件和规则函数都在data.js中实现,data.js中定义的规则函数在调试时通过$page调用,如下:

data.js中获取数据集组件用this.comp("data的id"),还可以获取上下文(wxContext)、服务组件(wxService)、工作流组件(wxWf)、序号组件(wxSn)等,都是用this.comp("组件id")获取。

如下:
    onMainDataBeforeSave(event){
        var wfmui = this.comp("wfmui");
        var wxContext = this.comp("wxContext0");
        var personFname = wxContext.getCurrentPersonMemberFName();
        var row = this.comp("restData0").getCurrentRow();
    }

注意:不能操作其他ui组件

results matching ""

    No results matching ""

    results matching ""

      No results matching ""