Show Menu
Cheatography

$mol Cheat Sheet. Офицальный сайт $mol https://mol.hyoo.ru/. Быстрый старт "Рабочее окружение": https://mol.hyoo.ru/#!section=docs/=yr3qrg_z2908a

$mol - это

Реактивный микром­оду­льный веб фреймворк для разработки прогре­ссивных прилож­ений. Очень простой, но весьма мощный.

Ваша цель №1. Быстрый старт

1. Скачать и запустить $mol и плагины
Вы увидите работу $mol и все его особен­­ности. Посмотрите на проекты и файлы, которые устано­вились.
2. Создать проект My Hello World
Следуйте инструкции по созданию проекта. Обращайте внимание на файлы, именна переменных и синтаксис, которые исполь­зуются. Запустите в браузере!
3. Опубли­ковать проект на GitHub Pages
Добавьте 1 файл и несколько настроек в GitHub по инстру­кции. Опубли­ков­анный сайт за пару минут - это просто!

Как скачать и запустить $mol?

git clone https://github.com/hyoo-ru/mam.git ./mam && cd mam
npm install && npm start

Проект Hello World (/my/h­ello)

Запустите mam
npm start
Создайте папку /my (имя компании)
/my
Создай проект /hello (имя проекта)
/my/hello
Перейдите в браузере на страницу
my -> hello

Как запушить на GitHub Pages?

Создать файл в проект и настроить ключи
/my/he­llo­/.g­ith­ub/­wor­kfl­ows­/de­plo­y.yml
Настроить репози­торий GitHub

Синтаксис *.view.tree

-
remarks, ignored by code generation
$
component name prefix, e.g
$mol_b­utton
/
array, optionally you can set type of array, e.g
sub /number
*
dictionary (string keys, any values)
^
return value of the same property from super class
\
raw string, e.g.
message \Hello
@
localized string, e.g.
message @ \Hello world
<=
provides read-only property from owner to sub-co­mponen
=>
provides read-only property from sub-co­mponen to owner
<=>
fully replace sub component property by owner's one
* !
property
*
or
!
- property takes ID as first argument, e.g.
Task_row* $mol_view
?
property +
?
- property can be changed by providing an additional optional argument, e.g. `value <=> name?val `

Реакти­вность состояния

@ $mol_mem
декоратор исполь­зуется для хранения и работы с единичным состоя­нием.
@ $mol_m­em_key
декоратор для хранения и работы с коллекцией состояний.
@ $mol_a­ction
декоратор для работы с асинхр­онным кодом
 

index.html - точка входа в проект

<!doctype html> <!-- Disable quirks mode -->
<html mol_view_root> <!-- Reset root styles -->
	<head>
		<meta charset="utf-8" /> <!-- Force utf-8 encoding -->
		<meta name="viewport"
			content="width=device-width, height=device-height, initial-scale=1"
		/> <!-- Disable mobile browser auto zoom, $mol is adaptive -->
		<meta name="mobile-web-app-capable" content="yes"> <!-- Fullscreen support -->
		<meta name="apple-mobile-web-app-capable" content="yes">
	</head>
	<body mol_view_root> <!-- Reset root styles -->
		<div mol_view_root="$my_hello"></div> <!-- Autobind component to element on load -->
		<script src="web.js"></script> <!-- Load autogenerated js bundle -->
	</body>
</html>

index.v­ie­w.tree - Шаблон страницы

$my_hello $mol_view
	sub /
		<= Name $mol_string
			hint @ \Name
			value? <=> name? \
		<= message \
@ - это строка доступна для локали­зации

hello.v­iew.ts Поведение страницы

namespace $.$$ {
	export class $my_hello extends $.$my_hello {
		
		message() {
			const name = this.name()
			return name && 
Hello, ${name}!
} } }

hello.t­est.ts - тестир­ование

namespace $.$$ {

	$mol_test( {

		'Generating greeting message'() {

			const app = new $my_hello
			$mol_assert_equal( app.message(), '' )

			app.name( 'Jin' )
			$mol_assert_equal( app.message(), 'Hello, Jin!' )

		}

	} )

}

hello.v­ie­w.css

[my_hello] {
	display: flex;
	flex-direction: column;
	align-items: center;
	box-shadow: 0 0 0 1px var(--mol_theme_line);
}

[my_hello_name] {
	flex-grow: 0;
	margin: 1rem;
	width: 14rem;
}

hello.l­oc­ale­=ru.json - переводы

{
	"$my_hello_Name_hint": "Имя"
}
                   
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

            Bootstrap Glyphicons Cheat Sheet by James Croft
          Selenium WebDriver Cheat Sheet Cheat Sheet