Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Vue Reactivity #1271

Merged
merged 11 commits into from
Oct 8, 2020
Merged

Fix Vue Reactivity #1271

merged 11 commits into from
Oct 8, 2020

Conversation

jhildenbiddle
Copy link
Member

@jhildenbiddle jhildenbiddle commented Jul 5, 2020

Fixes #788 #790 #1074 #1252 #1364

  • Fix inability to instantiate reactive Vue components by 1) handling each child of #main instead of #main itself and 2) skipping elements that are already Vue instances
  • Retain previous behavior of handling basic Vue rendering without the need for a markdown <script> tag.
  • Add Vue3 support
  • Update documentation and add live Vue examples
  • Update index.html files to include Vue.js
  • Update Cypress Jest+Playwright e2e tests

Summary: Docsify was mounting #main as a Vue component on every page change when it detected Vue.js, presumably to process basic Vue content without requiring a <script> tag in each markdown file. The issue is that this was happening after users had already instantiated child elements of #main as Vue components, destroying those instances.

- Fix inability to instantiate reactive Vue components by 1) handling each child of #main instead of #main itself and 2)  skipping elements that are already Vue instances
- Retain previous behavior of processing basic Vue rendering without the need for a markdown <script> tag.
- Update documentation and add live Vue examples
- Update `index.html` files to include Vue.js and Vuep (CSS+JS)
# Conflicts:
#	docs/index.html
@vercel
Copy link

vercel bot commented Jul 5, 2020

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/docsify-core/docsify-preview/gw3jsrcph
✅ Preview: https://docsify-preview-git-fix-790.docsify-core.vercel.app

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jul 5, 2020

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 4f6148d:

Sandbox Source
docsify-template Configuration

Copy link
Member

@anikethsaha anikethsaha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is really awesome

Koooooo-7
Koooooo-7 previously approved these changes Jul 5, 2020
Copy link
Member

@Koooooo-7 Koooooo-7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome ! 👍

anikethsaha
anikethsaha previously approved these changes Jul 5, 2020
sy-records
sy-records previously approved these changes Jul 5, 2020
trusktr
trusktr previously requested changes Jul 5, 2020
Copy link
Member

@trusktr trusktr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good change, but let's add unit tests.

docs/index.html Outdated Show resolved Hide resolved
src/core/render/index.js Show resolved Hide resolved
@anikethsaha
Copy link
Member

This is a good change, but let's add unit tests.

tests fixtures (e2e-cypress) have been updated. But yea unit/integration tests would be great to add. But is it possible to do unit testing for this change ? if so, it would be great to add.

src/core/render/index.js Outdated Show resolved Hide resolved
src/core/render/index.js Outdated Show resolved Hide resolved
@jhildenbiddle jhildenbiddle linked an issue Jul 5, 2020 that may be closed by this pull request
1 task
- When Vue.js is detected, markdown `<script>` is not executed when executeScript is `false` (matches previous behavior)
- Minor code tweaks that do not affect functonality
anikethsaha
anikethsaha previously approved these changes Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vuejs related to Vue.js
Projects
None yet
5 participants