1-2 Release notes 发行说明


layout: default
type: about
shortname: Docs
title: Release notes
subtitle: About this release


{% include toc.html %}

<style>
.breaking {
color: red;
text-transform: capitalize;
}
</style>

Release 1.2.3 (2015-11-16)

This release fixes the following issues:

  • Fixes #2381,
    #2708: Fix ordering
    issues with custom-style elements that apply custom properties defined
    in other custom-style elements.

Release 1.2.2 (2015-11-12)

This release includes a number of small optimizations affecting startup time.

This release includes the following new features:

  • Fixes #2511. Add
    support for strip-whitespace attribute on templates. A template defined
    with the strip-whitespace attribute removes any empty text nodes from the
    template contents, which can result in a minor performance improvement.
  • Fixes #2537. Add optional
    incremental "chunked" rendering to dom-repeat.

    New properties:

    • initialCount. Enables incremental rendering and sets initial render count
    • targetFramerate. Determines the target frame budget for rendering the remaining items.

    If initialCount is set, after setting (or re-setting) items, the initial count will be rendered pre-paint, and all remaining items will be incrementally rendered at requestAnimationFrame timing. The template makes a best-effort attempt to hit
    the framerate specified by targetFramerate.

  • Fixes #2690. Add new
    getComputedStyleValue method to determine the computedn style of a custom
    property. Usage:

    <code><var>propertyValue</var> = <var>element</var>.getComputedStyleValue(<var>propertyName</var>);</code>

    This is equivalent to the native:

    <code><var>propertyValue</var> = getComputedStyle(<var>element</var>).getPropertyValue(<var>property</var>);

This release includes the following bug fixes and improvements:

  • Fix compound bindings with braces in literals.

  • Fixes #2639. Fix for
    BEM-like CSS selectors under media queries. This issue affected CSS selectors
    that included two dashes inline, such as foo--bar.

  • Fixes #2641. Fix gestures
    when using shadow DOM polyfill.

  • Fixes #2649.
    queryAllEffectiveChildren method throws an exception.

  • Fixes #2650. Add support
    for short unicode escape sequences in CSS rules.

  • Fixes #2660. Fix parsing
    of custom properties with 'var' in value.

  • Fixes #2670. Fix
    for multiple consequent spaces present in CSS selectors.

  • Fixes #2685: dom-if
    throws exception if detached before instance is stamped.

Release 1.2.1 (2015-10-29)

This release includes the following new features:

  • Add deepContains method to DOM API.

This release includes fixes for the following issues:

  • Make parsing of mixin declarations more robust.

  • Fixes #2556.
    notifyPath: Ensure outer paths aren't forwarded to instance props.

  • Fixes #2610.
    isLightDescendant should return false for self.

Release 1.2.0 (2015-10-22)

This release includes the following new features:

  • Compound binding support. In place of a single binding annotation, you
    can now use a compound binding consisting of string literals and
    binding annotations:

    <span>Name: {%raw%}{{lastname}}, {{firstname}}{%endraw%}</span>
    

    See Compound bindings for details.

  • New observeNodes method for tracking addition and removal of child
    nodes and distributed nodes. See Observe added and removed children.

  • New effective children APIs that provide a composition-aware view of
    light DOM children. See Effective children.

  • Improvements to path API.
    Fixes #2007,
    #2509.

    • Allows set to take paths with array keys, identified by
      <code>#<var>key</var></code>.
    • Allows notifyPath to take paths with array indices.
    • Exposes public notifySplices API.
  • Fixes #2582. Fix IE10 regressions
    in dom-repeat, dom-bind, and dom-module-inline

  • Fix deepEqual on Safari 9 due to Safari enumeration bug.

  • Add Polymer.dom(node).notifyObservers method to 'kick' observers, for example,
    when attributes change under Shadow DOM.

Release 1.1.5 (2015-10-08)

This release includes the following new features:

  • Added isLightDescendent and isLocalDescendent utility methods to
    {{site.project_title}} elements.

  • The fire method's detail argument can take any primitive value, not just objects.

This release fixes the following issues:

  • Fixes #2504. Templatizer: Variables in the parent scope are not passed during initialization.

  • Fixes #2505. Templatizer: Changes to array/object properties from the parent scope not notified.

Release 1.1.4 (2015-09-25)

This release fixes the following issues:

Web Components polyfill updated to 0.7.13. The latest version of webcomponents-lite.js
fixes an issue that affected SEO of Polymer 1.x apps.
{: .alert .alert-info }

Release 1.1.3 (2015-09-04)

  • Fixes #2403. Fixes a regression
    that affected legacy projects using Chrome 39.

Release 1.1.2 (2015-08-28)

  • Fixes #2356. Log a warning
    if the included style module cannot be found.

  • Fixes #2357. Styles included
    with include= are inserted before any styles defined in the body of
    the style element.

  • Fixes #2363. Explicitly create
    Polymer object on window to satisfy strict mode.

  • Fixes #2329. Registration changes
    to support ES6 classes.

  • Fixes #2341. Branch Polymer.dom to
    use native dom methods under Shadow DOM for appendChild, insertBefore, removeChild,
    replaceChild, and cloneNode.

  • Fixes #2334. When composing nodes
    in shady DOM, check if a node is where we expect it to be before removing it from
    its distributed position. We do this because the node may have been moved by
    Polymer.dom in a way that triggered distribution of its previous location. The
    node is already where it needs to be so removing it from its parent when it's no
    longer distributed is destructive.

Release 1.1.1 (2015-08-20)

This release fixes a serious regression in Release 1.1 related to shady DOM distribution. Related issues:

  • Fixes #2276: DOM API fails to select an element in a dom-repeat in Polymer 1.1. (commit)

  • Fixes #2311, #2323: When elements are removed from their previous position when they are added elsewhere, make sure to remove them from composed, not logical parent. (commit)

  • Fixes #2253: Refine logical tree check and populate parents of insertion points with logical info only if necessary. Fixes #2283: when a node is removed, we need to potentially distribute not only its host but also its parent. (commit)

Other fixed issues:

  • Fixes #2263: Ensure custom-style can parse variable definitions in supported selectors (e.g. /deep/) without exception due to unknown css. (commit)

  • array-selector: Add selectedItem property. (commit)

  • dom-repeat: Fixes #2297, Where a
    dom-repeat with a sort property threw an exception when removing 10 or more items at a time. (commit)

  • Fixes #2267: Properly find dom-module for mixed case elements. (commit)

  • Fixes #2304: Avoid trying to read style data from imports that did not load. (commit)

  • Support for negative numbers in computed bindings. (commit)

Release 1.1.0 (2015-08-13)

Shared style change

This release includes support for a new style sharing mechanism. The new mechanism
should be used in place of <link rel="import" type="css">.

See Shared styles and external stylesheets in
the Developer guide for details.

As a result of these changes, several recommendations are changing:

  • <link rel="import" type="css"> is deprecated and will eventually be removed. This syntax
    allowed users to use a pure .css file, but the file is parsed as HTML which is a
    security and performance concern.

  • We now recommend placing an element's <style> tag inside the element's local DOM
    template, not outside. The older style is still supported, but does not perform as well
    as placing the styles inside the template.

Fixed issues:

  • Fixes #2251: Resolve imported stylesheets against correct document. (commit)

  • Reduce keySplices to minimum change set before notifying. Fixes #2261. (commit)

  • array-selector: Make clearSelection method public. (commit)

  • Add logical info if an element being added is an insertion point; do not add logical info for any element in a shady root. (commit)

  • Fixes #2235. Manages logical information in shady distribution more directly by capturing it explicitly when needed and not whenever distribution is run. (commit)

  • Ensure path fixup is applied correctly to styles in templates. (commit)

  • dom-module no longer needs to eagerly upgrade custom elements since the web components polyfills do this automatically. (commit)

v1.0.9 (2015-08-07)

  • array-selector. Numerous fixes around selection. Default selected to empty array. Add isSelected API. Add default values and update docs. (commit, commit, commit, commit)

  • Fixes #2218: Match style properties against scope transformed selector (not property unique selector). (commit)

  • Gestures: Make sure mouse position is not a factor for .click() in IE 10. (commit)

  • Gestures: Always trigger tap for synthetic click events. (commit)

  • Fixes #2193: Implements workaround for chromium bug #516550 by adding Polymer.RenderStatus.whenReady and using it to defer attached. (commit)

  • Fixes vulcanize#209.
    Fixes issue where polyfilled templates may not upgrade correctly.
    (commit)

  • Use _clientsReadied to avoid missing attribute->property sets in ready. (commit)

  • Make propagation of attribute changes at configure time more efficient. (commit)

  • Fixes #1673: Ensure instance effects exist before marshaling attributes. (commit)

  • Custom properties: Make properties replacement robust against properties which start with a leading semicolon (;). (commit)

  • Fixes #2154: Ensure Polymer.dom always sees wrapped nodes when Shadow DOM polyfill is in use. (commit)

  • Use CSS parser's property stripping code in custom-style. (commit)

  • Gestures: Automatically filter mouse events without the left mouse button. (commit)

  • Fixes #2113: Ensure custom-style rules that use @apply combined with defining properties apply correctly. (commit)

  • More loosely match expression function names. (commit)

  • Update behaviors order. Fixes #2144. (commit)

  • dom-if: Cache style.display & textContent and re-apply on true. Fixes #2037. (commit)

  • Fixes #2118: force element is to be lowercase: mixing case causes confusion and breaks style shimming for type extensions. (commit)

  • Allow array mutation APIs to accept string & negative args. Fixes #2062. Brings the API more in line with native Array methods. (commit)

  • Fix #2107: improve binding expression parser to match valid JavaScript property names. (commit)

Release 1.0.8 (2015-07-23)

  • Gestures: Disable track gestures when scrolling. (commit)

  • Fixes #2125: Add a register method to dom-module to support imperative creation. (commit)

  • Gestures: Move recognizer reset into start of event flow. (commit)

  • Remove alternate calculation for _rootDataHost (commit)

  • dom-bind: Don't call dom-change when detached. (commit)

  • Fixes #1998: add API doc for customStyle property. (commit)

  • Handle comment nodes correctly for textContent and innerHTML. (commit)

  • Data binding: Fixes #2098: Ignore undefined values as initial config (commit)

  • Data binding: Allow setting non-index array properties. Fixes #2096. (commit).

  • dom-bind: Added render method to dom-bind which can be called when async imports are used; documented template render functions (commit).

  • Fixes #2039: Polymer.dom.flush now triggers Custom Elements polyfill mutations and includes an api (Polymer.dom.addDebouncer(debouncer)) for adding debouncers which should run at flush time. Template rendering debouncers are placed in the flush list. (commit)

  • Fixes #2010 and #1818: Shady DOM mutations which trigger additional mutations are now successfully enqueued. (commit)

  • debounce returns debouncer. (commit)

Release 1.0.7 (2015-07-16)

  • dom-repeat: Remove unnecessary keys bookkeeping. (commit)

  • dom-repeat: Always use placeholders; fix insertion reference bug. (commit,
    commit)

  • dom-repeat: Fix reuse logic to handle multiple mutations in same turn. Fixes #2009. (commit)

  • Add Polymer.instanceof & isInstance. Fixes #2083. (commit)

  • Make Polymer.dom(element).getDistributedNodes and Polymer.dom(element).getDestinationInsertionPoints() always return at least an empty array (was generating exception under Shadow DOM); make element.getContentChildNodes and element.getContentChildren always return at least an empty array when a selector is passed that does not find a <content> (was generating exception under Shadow DOM). (commit). Fixes #2081.

  • Fixes #2077: Workaround IE text node splitting issue that can make text bindings fail. (commit)

  • Fixes #2078: When computing custom style properties, make sure the styling scope is valid when the element is attached to a shadowRoot whose host is not a Polymer element. (commit)

Release 1.0.6 (2015-07-09)

Fixed issues:

  • Basic support for host-context \#1895

  • Custom property resolver tripping over some selectors? \#1938

  • Parsing compressed CSS does not work \#1927

  • Support Polymer.dom().classList.contains \#1907

  • Add support for :host-context \#1900

  • Grey overlay in mobile Safari \#1970

  • node.unlisten removes native event listeners too often \#1988

  • notifyPath doesn't return as its documentation says \#1966

  • "TypeError: Cannot set property 'display' of undefined" when HTML comment is present inside a dom-if template that evaluates to truthy \#1786

  • dom-repeat in a falsy dom-if should hide newly stamped children \#1751

  • Typo in Polymer.mixin API documentation \#2001

  • Low-level changes for iron-list integration (fire & modelForElemennt) \#2003

  • Normalized event difference with ShadowDOM and Shady \#1921

  • DOM API innerHTML adds only first element \#1972

  • With Polymer\#1.05-update, style-sheets and custom-style-elements are not parsed in my project anymore \#1974

  • Expected behavior for importNode, cloneNode \#1888

  • \#1.0.5 computed property function name limitations? \#2016

Release 1.0.5 (2015-06-25)

Fixed issues:

  • Bindings to concrete types not propagating correctly from template to collection \#1839

  • Setting individual array elements not working \#1854

  • CustomStyle change has no effect \#1851

  • With Shady DOM, <content> doesn't get passed to another element inside dom-if #1902

  • Provide a convenience method for setting customStyle and calling updateStyles \#1915

  • If an async callback throws an error, it's never removed from the callback list \#1759

  • dom-if: undefined is considered falsy only once \#1742

  • Setting readOnly and computed on properties \#1925

  • Uncaught TypeError: this.mixin is not a function \#1911

  • Polymer.Base.async "infinite loop" condition \#1933

  • Custom property resolver tripping over some selectors? \#1938

  • Annotated attribute binding issues \#1874

  • Parsing compressed CSS does not work \#1927

Release 1.0.4 (2015-06-17)

Fixed issues:

  • Need a way to cancel track and tap from down #1823

  • array-selector doesn't work with multi unless toggle is specified #1810

  • Style shim only converts a single ::shadow or /deep/ in a selector #1809

  • Incorrect style for custom CSS properties when extending a native element #1807

  • Unwrapped dom-if causes DOMException #1804

  • dom-if fails to add rows to a table if they contain <content> #1800

  • Data binding causes infinite loop if value is NaN #1799

  • Do not resolve hash-only urls used for routing #1757

  • Content nodes in dom-if template do not distribute correctly #1753

  • An element that uses only values supplied by variable defaults can be styled incorrectly #1752

  • Nested dom-repeat with sort attribute shows duplicate entries when adding new items. #1744

  • ::before / ::after pseudo selectors in a custom-style #1668

  • Need Polymer.Base.unlisten to remove the event listener #1639

  • custom-style sometimes does not apply variables #1637

  • dom-if template doesn't stamp when its content contains a wrapped insertion point #1631

Documentation updates 10 June 2015

  • Documented extending behaviors.
  • Corrected @apply example in Migration guide to show only one mixin per @apply statement.
  • Added documentation for custom properties API.
  • Moved <script> tags inside <dom-module> according to latest recommendations.
  • Updated documentation on computed bindings to
    cover literal arguments and no-arg computed bindings.
  • Added notes on several more renamed element and helper methods to the migration guide.
  • Added notes about replacing template-bound and templateInstance when using the template helper elements.
  • Updated docs on ready callback to clarify element initialization order.
  • Added a note about replacing the domReady callback.
  • Fixed some accessibility issues related to text contrast and bad alt text.

Release 1.0.3

Release 1.0.3 includes the following bug fixes:

  • dom-if showing invalid HTML. Fixes #1632.

  • Custom CSS property fix for IE. (commit)

  • Move non-webcomponents script unresolved case to load instead of synchronous. (commit)

  • dom-repeat: re-insert rows when re-attaching. Fixes #1498.

  • Make __styleScoped a one-time optimization. Fixes #1733.

Release 1.0.2

Release 1.0.2 includes the following bug fix:

  • Refactor ghost click code. (commit)

Release 1.0.1

Release 1.0.1 includes the following bug fixes:

Release 1.0

Release 1.0 includes the following bug fixes since 0.9:

  • Custom style system performance optimizations and parsing robustness.
  • Fixed Shady DOM style scoping on IE.
  • Avoid binding undefined string into textContent and inputs.
  • Allow behaviors to accept nested arrays of behaviors.
  • Properly update dom-repeat rendering following array mutations when both sort and filter are used.
  • Support literal strings & numbers in inline computed functions.
  • Support no-argument functions in inline computed functions.
  • Update Shady DOM distribution when using Polymer.dom(node).classList or Polymer.dom(node).setAttribute on distribution candidates.
  • Fixed gesture exception when dragging outside the document.
  • Fix ordering of behavior application.
  • Allow dom-bind to be imperatively created and filled with elements to be bound.
  • Fixed tap not firing the first time after tracking another element.
  • Fix dom-bind to ensure dependencies have resolved before stamping.
  • Fixed certain use cases of dynamically stamping a <content> using dom-if.
  • Prevent mustache content from being set to <input> value on IE.
  • Added warnings for common user mistakes.
  • Fix dom-bind from improperly scoping element classes.
  • Allow observation and binding of array.length.
  • Fix :host specificity for custom style properties.
  • Added Polymer.version property.

Documentation correction

The Migration guide has been updated to reflect that the
iron-flex-layout
custom properties are the recommended replacement for layout attributes in
Release 1.0. The layout classes previously described
in the Migration guide for Releases 0.8 and 0.9 will continue to work for
now, but are deprecated.

Release 0.9

A number of APIs changed between 0.8-rc.2 and 0.9. This section summarizes the changes.

Element registration changes

<span class="breaking">breaking change:</span> Mixins replaced by behaviors

Mixins have been replaced by behaviors, which can define properties, add
lifecycle callbacks, observers, and event listeners.

Specify behaviors using the behaviors array on the prototype:

Polymer({
  is: "enhanced-element",
  behaviors: [CoolBehavior]
});

For details, see Behaviors.

<span class="breaking">breaking change:</span> constructor renamed to factoryImpl

When creating a custom constructor, the configuration function is
renamed from constructor to factoryImpl, to aid compilation tools.

<span class="breaking">breaking change:</span> hostAttributes changes {#host-attributes}

Static attributes defined in hostAttributes can now be overridden from markup.

As a part of this change, the class attribute can no longer be set from
hostAttributes. If you need to set classes on the host, you can do so
imperatively (for example, by calling classList.add from the ready callback).

<span class="breaking">breaking change:</span> Property observer changes

The format for property observers has changed to be more like the format for computed properties:

Before:

observers: {
  'preload src size': 'updateImage'
},

updateImage: function(preload, src, size) {
  // ... do work using dependent values
}

After:

observers: [
  'updateImage(preload, src, size)'
],

updateImage: function(preload, src, size) {
  // ... do work using dependent values
}

Also, property observers are not invoked until all dependent properties are defined.
If the observer is not being invoked, make sure all dependent properties have non-undefined
default values set.

Styling changes

Custom property support

This release includes several enhancements and changes to custom property support:

  • Custom property support is enabled for all elements. The enableCustomStyleProperties
    flag is no longer required.

  • <span class="breaking">breaking change:</span> Style mixins are applied with @apply instead of mixin.

    @apply(--my-style-mixin)
    
  • The var function allows you to supply a default value, which is used if the custom
    property is not defined:

    background-color: var(--my-background, red);
    
  • Custom properties and mixins can be used inside a mixin.

    --foo: {
      color: var(--my-color);
      @apply(--my-theme);
    };
    

<span class="breaking">breaking change:</span> x-style renamed to custom-style

The custom-style element replaces the experimental x-style element.

Custom properties and CSS mixins can now be applied inside a custom-style element.

For more details, see Custom element for document styling.

Support for :root selector

Styling now supports the :root pseudo-class
inside custom-style. In the context of a custom-style element, the :root selector lets
you define a custom property that applies to all custom elements. (In 0.8, applying a property to
all custom elements required a more expensive * selector.)

Data binding changes

<span class="breaking">breaking change:</span> Template helper elements no longer experimental

The template helper elements are no longer experimental, and have been renamed:

  • x-repeat is now dom-repeat.
  • x-bind is now dom-bind.
  • x-array-selector is now array-selector.
  • x-if is now dom-if.

Nested template support

As of 0.9, nested templates can access their parent's scope. See Nesting dom-repeat templates for details.

<span class="breaking">breaking change:</span> Array mutation methods

In 0.8, an array observer was used to monitor the mutation of arrays, so adding an
item to an array was observed automatically, but changing a value in an array item required
the setPathValue method (now renamed to set).

0.9 replaces the array observers with a set of array mutation methods. For array changes
to be observed by data bindings, computed properties, or observers, you must use the provided
helper methods: push, pop, splice, shift, and unshift. Like set, the first argument
is a string path to the array.

this.push('users', { first: "Stephen", last: "Maturin" });

Gesture support

This release adds limited gesture support. For details, see Gesture events.

Content security policy (CSP) {#csp}

CSP issues in the initial release of 0.8 have been resolved. CSP still requires separate script and
HTML files.

The CSP-specific functions of vulcanize have been
split into a separate utility, crisper. To prepare a site for
deployment in a CSP environment, you can use a command like this:

vulcanize --inline-scripts --inline-css target.html | \\
    crisper --html build.html --js build.js

For more details on the vulcanize arguments, see the README.

Note: The latest versions of vulcanize are not compatible with {{site.project_title}} 0.5.
For 0.5 projects, use vulcanize versions earlier than 1.0. vulcanize 0.7.10 is the latest version
supporting 0.5 projects.
{: .alert .alert-info }

Utility functions

<span class="breaking">breaking change:</span> transform and translate3d API changes

The method signatures for the transform and translate3d utility methods have
changed to match the other utility methods. The node argument is now the last argument,
and is optional. If node is omitted, the methods act on this.

Before:

transform(node, transform);
translate3d(node, x, y, z);

After:

transform(transform, node);
translate3d(x, y, z, node);

<span class="breaking">breaking change:</span> fire API changes

The fire method now takes three arguments:

fire(type, [detail], [options]);

The options object can contain the following properties:

  • node. Node to fire the event on. Defaults to this.
  • bubbles. Whether the event should bubble. Defaults to true.
  • cancelable. Whether the event can be canceled with preventDefault. Defaults to false.

New utilities

The following utility functions were added since 0.8-rc.2 or were missing
from the earlier documentation:

  • $$
  • cancelAsync
  • debounce
  • cancelDebouncer
  • flushDebouncer
  • isDebouncerActive

For details, see Utility functions.

Bug fixes

Release 0.9 includes a number of bug fixes. A few notable fixes are listed below.

  • The id attribute can now be data bound. (Note that if id is data bound,
    the element is omitted from this.$.)

  • Default values are now set correctly for read-only properties.

  • An identifier with two dashes in the middle (c--foo) was improperly interpreted
    as a CSS custom property name.

  • Fixed several issues with computed bindings, including one where the computing function
    was not invoked unless its dependent property was included in another binding.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容