@ buyingbuddy/反应
将 IDX/ MLS 集成到您的站点中, 并带有嵌入的 React 组件 购买Buddy IDX CMM 部件 - MLS 属性搜索,基于地图的结果,详细的上市页面,特色上市展示,铅抓取表,以及市场报告.
所有数据都托管在Buying Buddy服务器上. 你只需要安装软件包 买巴迪不需要任何数据库或其他技术先决条件. MLS/IDX 数据种子已经是您Buying Buddy 服务的一部分 - 没有单独的数据种子可以获取, 没有API可以连接, 没有任何连接 。 您不需要自编自导、 许可或整合数据 .
作为Buddy部件的船 <bb-widget> 从Buying Buddy插件脚本中装入自定义元素。 此软件包将元素包裹在平面反应组件中,这样您就可以将IDX搜索和列表添加到您的站点,而无需写入脚本标记或直接触碰自定义元素.
与 反应, (中文(简体) ), 下一个.js,以及 帧器。 。 。 .
这是给你的包裹吗? 这是一个 React 组件库——您在编译 JSX/TypeScript 的已建工具项目(Vite, Next.js, Frammer)内使用. 如果您只想将一个部件放入带有
<script>标签,您不需要这个软件包——使用从您的Buyding Buddy账户仪表板上安装的标准部件(部件 — 安装和设置相反.
先决条件
在事情发生之前,你需要两个:
- 买Buddy账户激活密钥. 在你的仪表板下找到它 部件 — 插件安装和设置。没有匿名或“尝试”模式——没有有效激活键,部件不会加载.
- 你的域名被授权使用. 激活密钥只在账户注册的域上有效 。 在未经授权的域中, 运行时负载, 但部件会保留 空 (没有返回数据) — 如果部件变为空白, 请检查域名是否在 部件 — 插件安装和设置。 。 。 .
还没有账户吗? 开始免费审判 或者说 购买执照 获取激活键.
安装
在现有反应项目内:
npm install @buyingbuddy/react
反应 18 或 19 作为同伴的依赖, 请确保您的项目有:
npm install react react-dom
从头开始
没有反应项目了吗? 这让你从一无所有到运行的一页:
npm create vite@latest my-site -- --template react
cd my-site
npm install
npm install @buyingbuddy/react
npm run dev # opens a dev server, usually http://localhost:5173
然后将下面的一个例子粘贴到 src/App.jsx 并保存——页面自动重载.
快开始
import { BuyingBuddyProvider, BuyingBuddyWidget } from "@buyingbuddy/react";
export default function App() {
return (
<BuyingBuddyProvider activationKey="account-activation-key">
<BuyingBuddyWidget type="FeaturedGallery" filter="limit:12" />
</BuyingBuddyProvider>
);
}
替换 account-activation-key 还有你的 activationKey。提供者为该账户装入了买入Buddy的脚本,并提供给其中的部件。 您自己的内容会直接消失, 提供商从不拒绝它, 一旦运行时间准备好, 每个部件就会出现 .
实例
独立的搜索表 :
<BuyingBuddyProvider activationKey="account-activation-key">
<BuyingBuddyWidget type="SearchForm" />
</BuyingBuddyProvider>
在网格或列表布局中显示属性,带有 limit: 在过滤器中标出数 :
<BuyingBuddyWidget type="FeaturedGallery" filter="limit:12" />
要显示更广泛的 MLS 列表,请在
filter(下关. 如果过滤器没有其它标准, 部件会显示账户本身的( 特殊) 列表 .
在网格布局中显示所选属性. 所有选项均表示为 +- 在一个单曲里面加入的标志 filter 字符串 — 标准、 排序和计算相同 。 使用 FIELD() 用于接受多个值的字段:
{/* 6 listings over $300k, priced high-to-low */}
<BuyingBuddyWidget
type="FeaturedGallery"
filter="price_min:300000+order:price desc+limit:6"
/>
{/* combine criteria with + ; FIELD() for multi-value fields */}
<BuyingBuddyWidget
type="FeaturedGallery"
filter="city:Denver+FIELD(property_beds:3,4,5)+order:price desc+limit:9"
/>
搜索结果 (结果部件由搜索/cookie状态驱动,以及 SearchResults 绑定在地图视图端口:
<BuyingBuddyWidget
type="SearchResults"
filter="city:Denver+price_min:300000+order:price desc"
/>
固定高度的交互式映射 :
<BuyingBuddyWidget type="InteractiveMap" style={{ height: "600px" }} />
下一个.js
提供者完全在浏览器中运行( 它装入脚本并读取) window),因此,使得它的文件必须是 客户部分在 App 路由器中,添加 "use client" 文件顶端的指示——它告诉Next.js在浏览器中运行这个组件,而不是只在服务器上运行.
单位 app/page.tsx数字 :
"use client";
import { BuyingBuddyProvider, BuyingBuddyWidget } from "@buyingbuddy/react";
export default function Page() {
return (
<BuyingBuddyProvider activationKey="account-activation-key">
<BuyingBuddyWidget type="SearchResults" />
</BuyingBuddyProvider>
);
}
由于这些部件仅是客户端,其上市内容是 未交付服务器 记住这一点,如果名单的SEO本身对你很重要.
帧器
一个独立、单一文件部件 帧器 网站构建者住址 framer/BuyingBuddyWidget.tsx它捆绑了脚本加载并添加了Framer属性控件(活化键,部件类型,过滤器),因此您可以配置Framer设计面板上的所有内容——不需要反应码.
- 打开
framer/BuyingBuddyWidget.tsx并复制其全部内容. - 在帧器中,转到 资产 —— 代码 —— + 把它粘起来.
- 将组件拖入画布并设定 激活密钥 在财产面板.
你也可以从你的Buying Buddy帐号仪表板上 预先装满自己的激活键 部件 — 插件安装和设置。 。 。 .
API 密码
<BuyingBuddyProvider>
装入Buddy运行时的账户并提供给里面的部件。 使用 一个 供应商,靠近你的树顶.
| Prop | 类型 | 默认 | 说明 |
|---|---|---|---|
activationKey | string | —— 说 | 要求. 你的买巴迪账户激活密钥. |
fallback | ReactNode | —— 说 | 已贬值,自0.3.2起不再开放. 接受并被忽略;安全删除. 供货商不再扣留 children,所以没有装入状态使其屈服. |
<BuyingBuddyWidget>
生成单个部件。 一定是一个后代 <BuyingBuddyProvider>。 。 。 .
| Prop | 类型 | 说明 |
|---|---|---|
type | BuyingBuddyWidgetType | 要求. 要渲染的部件—— 例如 . "FeaturedGallery", (中文(简体) ), "SearchForm", (中文(简体) ), "SearchResults", (中文(简体) ), "InteractiveMap", (中文(简体) ), "SearchDetails"。 。 。 . |
filter | string | 属性过滤为 +- 加入的标志,例如. "city:Denver+FIELD(property_beds:3,4,5)+order:price desc+limit:9"。 。 。 . |
style | React.CSSProperties | 直接应用到 <bb-widget> 键。 A 类 height 在此显示部件大小(例如: InteractiveMap 编号 : SearchResults) (中文(简体) ). |
常见 type 数值包括 FeaturedGallery, (中文(简体) ), FeaturedList, (中文(简体) ), SearchForm, (中文(简体) ), SearchResults, (中文(简体) ), SearchDetails, (中文(简体) ), QuickSearch, (中文(简体) ), InteractiveMap, (中文(简体) ), Communities, (中文(简体) ), LcForm (头部抓获), LoginPanel, (中文(简体) ), Calculator, (中文(简体) ), MarketReport, (中文(简体) ), MarketStats, (中文(简体) ), Brokers, (中文(简体) ), OfficeRoster,以及 Disclaimer编辑 type prop接受任意字符串,所以更新的部件类型甚至在输入之前就已经工作了.
类型脚本
包裹用"TypeScript"和"飞船"来书写出自己的类型. 这些要导出以满足您的打字需要 :
import type {
BuyingBuddyWidgetType,
BuyingBuddyWidgetProps,
BuyingBuddyProviderProps,
BuyingBuddyContextValue,
} from "@buyingbuddy/react";
洞穴限制( L)
-
每页一个账户. Buying Buddy 脚本安装了单个全局,所以一个页面需要使用一个
activationKey。不支持在同一页上以不同的激活键渲染两个提供者. -
仅限客户端. 元件在脚本加载后在浏览器中渲染出——没有任何内容是服务器发送的. 没有SSR/流出输出,因此上市内容不在初始的HTML中(与SEO相关).
-
更改道具重建部件 . 变化
type或者说filter泪下再现下底部<bb-widget>,失去widget状态(地图位置、滚动、窗体输入). -
解载后剧本持续. 卸载提供者不会移除脚本或重置全局-重载再用已装入的运行时间. 这是故意的.
-
脚本加载失败会悄悄地降解. 如果运行时脚本未能加载——CDN出道,广告屏蔽器,CSP规则,公司代理,下线——则您的应用程序完全按照它否则会产生的结果,而买入Buddy部件则完全缺失. 供应商在你的页面上不做任何自己的事。 故障记录在控制台上一次,可读取为
error从useBuyingBuddy()如果你想自己说点什么的话:const { error } = useBuyingBuddy(); if (error) return <p>Property search is temporarily unavailable.</p>;注意这只涵盖脚本加载失败 —— 未经授权域装入精细但使空部件( 见 Prerequisites) .
-
仅限无害环境管理. 这个软件包船只作为ES模块(没有共同JS构建). 在有无害环境管理/捆绑者支持的项目中使用.
-
释前. 这个软件包是
0.x——API可能改变.
发展
npm install
npm run build # compile src/ to dist/ (JS + .d.ts)
npm run dev # rebuild on change (tsc --watch)
npm test # run the unit tests (vitest)
许可证
麻省理工学院 蓝火集团/买巴迪