我正在构建一个经典的数据库支持的动态网站,允许用户共享潜在客户.

我有点老了,想要使用纯MVC架构来实现我的系统.我正在考虑在纯’V’模式下使用React,Vapor履行’M’和’C’角色.我需要一些帮助来了解如何集成Vapor和React,或者更精确地确定哪些功能最适合驻留.

我的Vapor服务器端应用程序,处理所有安全性,路由,模型(通过Fluent存储在Postgresql数据库中)和模型控制器.模型控制器仅向通过中间件层的请求输出纯JSON响应:检查用户访问“命令”的权限(基于数据库中保存的角色配置文件,允许动态更改权限);验证访问关联记录的权限(基于他们可以成为的组的层次结构);并记录用户正在执行的操作.

到目前为止,我一直在使用Leaf模板引擎为用户使用的网站生成.html文件. Leaf模板通常只传递一个或两个属性 – 比如将要显示的记录的id,然后我使用一些javascript通过AJAX调用将数据拉回到模型控制器.模型控制器和中间件可以访问cookie以满足所有用户身份验证/会话相关的需求.这样可以在模型和视图之间保持非常清晰的分离,并且可以让我更轻松地构建一个称为将来调用模型RESTful接口的移动应用程序.

现在我正在考虑使用React进行Web前端,使用React-Bootstrap库.但说实话,我有点迷失了如何正确地整合这个.例如,渲染页面以显示记录 – 如何传递记录ID(伪代码警告!):

a)我应该创建一个叶子模板,我将id作为参数传递给它.模板只需要一小段javascript就能将参数传递给react.js脚本?蒸汽方面看起来像:

drop.get("viewRecord",myObject) { request in
    let parameters = try Node(node:["objectId": myObject?.id.makeNode()])
    return try webApp.view.make("viewObject",parameters)
}

而.leaf模板有点像:

<script ...>
    var objectID = #(viewObject.id)
</script>

b)或者我应该拨打电话,例如,我将id作为URL参数传递,然后我将使用一些小的javascript提取并传递给react组件:

drop.get("viewRecord",myObject) { request in
     return Response(redirect: "/viewObject.html",myObject?.Id)
}

c)Vapor中的其他方式?我错过了React的观点吗?我认为这意味着没有关注前端和后端的不可知,但React路由器建议它也需要一些后端工作?

d)放弃反应,并说贴叶?

在最后一点 – 如果我采用React方式,我是否会为每个“屏幕”创建一个.jsx文件(转换为.js),我会为其构建一个叶子模板?如果是这样,我将如何通过引用公共元素(例如react和react-bootstrap组件)来减少文件大小.目前我正在使用Webpack生成一个.js文件.我假设我不会使用React路由器,因为我使用Vapor.

对不起,如果其中一些是非常基本的,但我对后端更加满意,但希望前端也能很好地设计,并且最大限度地分担责任.

谢谢你的想法!

所以经过一些工作,我的问题的答案是c.

我有两个独立的项目:

1)使用Vapor构建纯粹的restful服务,使用JSON响应响应GET和POST请求.它假设浏览器不安全,它处理所有安全性.

2)然后在前端,我有一个React单页面应用程序.它在登录期间下载用户的权限,并使用它来控制屏幕上可见的内容.

服务器确保不会发送或持久保存超出用户权限的数据.因此,如果用户能够尝试在React应用程序中查看他们没有权限的页面,他们只会看到页面结构而没有数据.

swift – 整合蒸汽和反应的更多相关文章

  1. ios – React native链接到另一个应用程序

    如果是错误的,有人知道如何调用正确的吗?

  2. ios – React Native – 在异步操作后导航

    我正在使用ReactNative和Redux开发移动应用程序,我正面临着软件设计问题.我想调用RESTAPI进行登录,如果该操作成功,则导航到主视图.我正在使用redux和thunk所以我已经实现了异步操作,所以我的主要疑问是:我应该把逻辑导航到主视图?我可以直接从动作访问导航器对象并在那里执行导航吗?.我对组件中的逻辑没有信心.似乎不是一个好习惯.有没有其他方法可以做到这一点?

  3. 在ios中使用带有React Native(0.43.4)的cocoapods的正确方法是什么?

    我已经挖掘了很多帖子试图使用cocoapods为本地ios库设置一个反应原生项目,但我不可避免地在#import中找到了丢失文件的错误.我的AppDelegate.m文件中的语句.什么是使用反应原生的可可豆荚的正确方法?在这篇文章发表时,我目前的RN版本是0.43.4,而我正在使用Xcode8.2.1.这是我的过程,好奇我可能会出错:1)

  4. ios – React Native WebView滚动行为无法按预期工作

    如何确保滚动事件的行为与ReactNative应用程序中的浏览器相同?

  5. ios – React Native – BVLinearGradient – 找不到’React/RCTViewManager.h’文件

    谢谢.解决方法几天前我遇到了完全相同的问题.问题是在构建应用程序时React尚未链接.试试这个:转到Product=>Scheme=>管理方案…=>点击你的应用程序Scheme,然后点击Edit=>转到Build选项卡=>取消选中ParallelizeBuild然后点击标志添加目标=>搜索React,选择第一个名为React的目标,然后单击Add然后在目标列表中选择React并将其向上拖动到该列表中的第一个.然后转到Product=>再次清理并构建项目.这应该有所帮助.

  6. ios – React Native – NSNumber无法转换为NSString

    解决方法在你的fontWeight()函数中也许变成:

  7. ios – React native error – react-native-xcode.sh:line 45:react-native:command not found命令/ bin/sh失败,退出代码127

    尝试构建任何(新的或旧的)项目时出现此错误.我的节点是版本4.2.1,react-native是版本0.1.7.我看过其他有相同问题的人,所以我已经更新了本机的最新版本,但是我仍然无法通过xcode构建任何项目.解决方法要解决此问题,请使用以下步骤:>使用节点版本v4.2.1>cd进入[你的应用]/node_modules/react-native/packager>$sh./packager.s

  8. 反应原生 – 如何通过Xcode构建React Native iOS应用程序到设备?

    我试图将AwesomeProject应用程序构建到设备上.构建成功并启动屏幕显示,但后来我看到一个红色的“无法连接到开发服务器”屏幕.它表示“确保节点服务器正在运行–从Reactroot运行”npmstart“.看起来节点服务器已经运行,因为当我做npm启动时,我收到一个EADDRINUSE消息,表示该端口已经在使用.解决方法从设备访问开发服务器您可以使用开发服务器快速迭代设备.要做到这一点,你的

  9. 静音iOS推送通知与React Native应用程序在后台

    我有一个ReactNative应用程序,我试图获得一个发送到JavaScript处理程序的静默iOS推送通知.我看到的行为是AppDelegate中的didReceiveRemoteNotification函数被调用,但是我的JavaScript中的处理程序不会被调用,除非应用程序在前台,或者最近才被关闭.我很困惑的事情显然是应用程序正在被唤醒,并且它的didReceiveRemoteNotifi

  10. 如何为iOS的React Native设置分析

    所以我已经完成了一个针对iOS的ReactNative项目,但是我想在其中分析.我尝试了react-native-google-analytics软件包,但是问题阻止了它的正常工作.此外,react-native-cordova-plugin软件包只适用于Android,因此插入Cordova插件进行分析的能力现在已成为问题.我也没有Swift/ObjectiveC的经验,所以将完全失去GA的插入.有没有人有任何建议如何连接GoogleAnalytics的ReactNativeforiOS?

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部