牙叔教程 简单易懂
MVC概念
- M即model模型是指模型表示业务规则
- V即View视图是指用户看到并与之交互的界面
- C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求
MVC目的
将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强
思考
使用mcv的思想来写脚本, 不一定要遵循标准的mvc, 可以一定程度的修改, 让其更适合写脚本;
学习编程的时候, 做了比不做好;
不能光看教程不动手, 要把学到的具体的知识, 变成泛化的知识, 动手是最好的方法;
我写的不一定对, 欢迎大佬批评指正
main.js
"ui"; require("./controller").init();
view.js
未登录页面和登录页面的xml文件
let LoginPage = ( <vertical padding="30"> <horizontal> <text text="username" textSize="30sp" /> <input id="username" w="*" /> </horizontal> <horizontal> <text text="password" textSize="30sp" /> <input id="password" type="password" w="*" /> </horizontal> <button id="login">login</button>; </vertical> ); let HomePage = ( <vertical padding="30"> <text text="homepage" w="*" gravity="center" textStyle="bold" textSize="40sp" /> <horizontal> <text text="username: " textSize="30sp" /> <text id="username" textSize="30sp" /> <linear id="vipComponentParent"></linear> </horizontal> <button id="logout">logout</button>; </vertical> ); let VipComponent = ( <vertical> <text text=" vip" textColor="#ff5722" w="*" textStyle="bold" textSize="30sp" /> </vertical> ); module.exports = { LoginPage: LoginPage, HomePage: HomePage, VipComponent: VipComponent, };
controller.js
用来调度View层和Model层, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息;
把登录的数据交给model处理, 显示对应的界面
let view = require("./view"); let model = require("./model"); module.exports = { init, }; function init() { loadLoginPage(); } function loadLoginPage() { ui.layout(view.LoginPage); loginPageAction(); } function loadHomePage(user) { ui.layout(view.HomePage); user.vip && ui.vipComponentParent.addView(ui.inflate(view.VipComponent)); homePageAction(user); } function loginPageAction() { ui.login.click(function () { let username = ui.username.text(); let password = ui.password.text(); if (!username) { toastLog("username is empty"); ui.username.setError("username is empty"); return; } if (!password) { toastLog("password is empty"); ui.password.setError("password is empty"); return; } let user = new model.UserModel(username, password); let loginResult = user.login(); if (loginResult) { loadHomePage(user); } else { toastLog("login failed"); } }); } function homePageAction(user) { ui.username.text(user.username); ui.logout.click(function () { loadLoginPage(); }); }
model.js
数据模型和业务逻辑;
验证登录
let UserModel = function (username, password) { this.username = username; this.password = password; this.vip = false; this.login = function () { if (this.username === "admin" && this.password === "123") { this.vip = true; return true; } else if (this.username === "user" && this.password === "123") { this.vip = false; return true; } else { return false; } }; }; module.exports = { UserModel: UserModel, };
环境
手机: Mi 11 Pro
Android版本: 12
Autojs版本: 9.1.0
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途