首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在我的Reitit管线中需要磅符号?

为什么在我的Reitit管线中需要磅符号?
EN

Stack Overflow用户
提问于 2020-05-07 20:57:54
回答 1查看 215关注 0票数 1

我一直在使用ClojureScript制作一个个人网站,并决定使用Reitit作为我的路由库,而不是我通常的秘书。我读过关于Reitit的一些非常好的东西,并且让它工作,但它只有在我导航到带有“#”的路径时才会做出反应。

示例:我希望能够访问“website.com/post”,但只有当我访问“website.com/#/post”时才能识别。

我的routes.cljs几乎是他们重帧示例的副本:

代码语言:javascript
复制
(defn href
  ([k]
   (href k nil nil))
  ([k params]
   (href k params nil))
  ([k params query]
   (rfe/href k params query)))


(def routes
  ["/"
   [""
    {:name :home
     :view v/main-panel
     :controllers [{:start (fn [& params] (js/console.log "Home"))
                    :stop (fn [& params] (js/console.log "Leaving Home"))}]}]
   ["posts"
    {:name :posts
     :view v/post-panel
     :controllers [{:start (fn [& params] (js/console.log "Posts"))
                    :stop (fn [& params] (js/console.log "Leaving Posts"))}]}]])

(defn on-navigate [new-match]
  (when new-match
    (re-frame/dispatch [::e/navigated new-match])))

(def router
  (rf/router
   routes
   {:data {:coercion rss/coercion}}))

(defn init-routes! []
  (rfe/start!
   router
   on-navigate
   {:use-fragment true}))

我的events.cljs也遵循了他们的例子:

代码语言:javascript
复制
(re-frame/reg-event-fx
 ::navigate
 (fn [db [_ & route]]
   {::navigate! route}))

(re-frame/reg-event-fx
 ::navigate!
 (fn [route]
   (apply rfe/push-state route)))

(re-frame/reg-event-db
 ::navigated
 (fn [db [_ new-match]]
   (let [old-match (:page db)
         controllers (rfc/apply-controllers (:controllers old-match) new-match)]
     (assoc db :page (assoc new-match :controllers controllers)))))

在我的views.cljs中,我有一些逻辑可以根据字典条目更改显示的页面:

代码语言:javascript
复制
(defn page []
  (let [current @(rf/subscribe [::subs/page])]
    [:div {:style {:justify-content :center}}
     [navbar]
     (case (:name (:data current))
       :home [main-panel]
       :posts [posts-panel]
       [:div])]))

路由工程,所以我现在能够推进我的网站,但我希望最终产品没有'#‘的网址时,导航它。

我遗漏了什么?Web dev对我来说还是个很新的东西,所以我们非常欢迎所有的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-07 22:00:47

尝试将{:use-fragment false}传递给rfe/start!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61658426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档