vuejs2 相关问题

将此标记用于特定于Vue.js版本2的问题,这是一个用于构建用户界面的开源,渐进式Javascript框架。

按钮内控制另一个 div 折叠的锚标记不起作用

在我的 Nuxt 2 SSR + Bootstrap 5 应用程序上,我有以下代码: 在我的 Nuxt 2 SSR + Bootstrap 5 应用程序上,我有以下代码: <button v-for="file of orderProduct.files" class="collapsed son-collapse" type="button" data-bs-toggle="collapse" :data-bs-target="`#collapseField${orderProduct.id}`" aria-expanded="false" :aria-controls="`collapseField${orderProduct.id}`" > <p><i class="fa fa-file-alt"></i> {{ file.original_filename }}</p> <div> <a @click.stop :href="`http://example.com`" target="_blank" > <i class="far fa-eye"></i>Ver </a> <span>{{ file.page_count }} {{ $tc('home.pagina', file.page_count) }}</span> </div> </button> <div :id="`collapseField${orderProduct.id}`" class="collapse summary cost-ajax" > ... </div> 当用户点击按钮时,Bootstap 的 JS Collapse 组件会切换相应的 div。没关系。但是,我希望当用户单击锚标记时打开一个选项卡。 好吧,这并没有发生。不仅选项卡没有打开,而且 div 也被切换,因为锚点上的单击事件传播到按钮中。 我认为这可能都是事件冒泡的问题,所以我使用了Vue.js内置的事件修饰符@click.stop。我还尝试调用一个方法并调用 e.stopPropagation()。这些都不会影响应用程序的行为。 最后,我觉得奇怪的是,当单击锚点内的 i 标签时,选项卡确实会打开。但可折叠元素不断切换。 您面临一个问题,因为 <button> 元素包含 <a> 元素,因此锚标记上的点击会传播到按钮并触发 Bootstrap 折叠。在 Vue 中使用 @click.stop 是停止事件传播的正确方法,但似乎在这种情况下不起作用。 因此,您必须在方法处理程序中使用 JavaScript 的本机 event.stopPropagation() 方法来停止传播: <a @click="stopPropagation" :href="`http://example.com`" target="_blank" > <i class="far fa-eye"></i>Ver </a> 在你的方法中: methods: { stopPropagation(event) { event.stopPropagation(); } } 希望这有帮助!

回答 1 投票 0

Vue Bootstrap - 工具提示不适用于动态渲染的 HTML

我有一个列表组,其列表项是通过 API 调用呈现的。 例如, { “菜单ID”:“1”, "名称": "帮助", ...

回答 4 投票 0

Vue Js 数据不会在计算生成的元素内更新

我在我的项目中使用了引导表。这些字段是在计算时填充的,例如 ... 计算:...

回答 1 投票 0

通过 vue-portal 在 highcharts 工具提示中显示 vue 组件

我在这方面已经很远了,但被困在这里了。 这是我几乎完整的示例: https://codesandbox.io/s/highcharts-vue-demo-forked-5pgv2h?file=/src/components/Chart.vue 我在做什么 我尝试...

回答 1 投票 0

如何在VueJs中读取元素的data-*?

我有4个带有颜色的按钮,我尝试根据单击的按钮更改div的背景颜色。 我在读取按钮的数据颜色对象并在 vue、h 中使用它时遇到问题...

回答 1 投票 0

vuejs中如何获取data-*属性的值

我有一个按钮,单击该按钮会打开一个模式,模式中显示的内容基于传递给按钮的数据属性。 我的按钮, 我有一个按钮,单击该按钮会打开一个模式,模式中显示的内容基于传递给按钮的数据属性。 我的按钮, <button class="btn btn-info" data-toggle="modal" data-target="#someModal" :data-id=item.id :data-name=item.name> Edit </button> 在我的模态中,我有一些按钮,单击时我应该使用参数(即数据属性)调用 vuejs 函数。 我的模态按钮, <div class="modal-footer"> <button type="button" class="btn btn-danger" @click.prevent="deleteItem()" data-dismiss="modal"> Delete </button> <button type="button" class="btn btn-warning" data-dismiss="modal"> <span class='glyphicon glyphicon-remove'></span> Close </button> </div> 这里我必须向deleteItem()传递一个参数,该参数就是我从上面的按钮获得的data-id。 模态代码 <div id="deleteModal" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modal-title">Delete</h4> </div> <div class="modal-body"> <div class="deleteContent"> Are you Sure you want to delete ? </div> <div class="modal-footer"> <button type="button" class="btn actionBtn btn-danger" @click.prevent="deleteItem()" data-dismiss="modal"> Delete <span id="footer_action_button" class='glyphicon glyphicon-trash'> </span> </button> <button type="button" class="btn btn-warning" data-dismiss="modal"> <span class='glyphicon glyphicon-remove'></span> Close </button> </div> </div> </div> </div> </div> HTML <button type="button" @click.prevent="deleteItem()" :data-id="1" data-dismiss="modal"> Delete <span id="footer_action_button" class='glyphicon glyphicon-trash'> </span> </button> Vue methods:{ deleteItem: function(){ var id = event.target.getAttribute('data-id'); console.log(id) // 1 } } 这是演示https://codepen.io/maab16/pen/jONZpVG 我建议在组件函数内执行 console.log(this),然后在单击按钮时调用该函数,以便您可以检查组件的所有属性。 (请参阅下面的附图,例如上述 console.log 语句的输出。) 这表明您可以访问包含 DOM 元素的 $el 属性。这带来了很多可能性,例如能够将以下代码添加到组件的 mounted 生命周期挂钩中: mounted() { console.log(this); this.myAttribute = this.$el.getAttribute('data-attribute-name'); }, 对于本示例, this.myAttribute 将在(例如)您的数据属性中定义: // This value gets attributed during an earlier lifecycle hook. // It will be overridden in the component's mounted() lifecycle hook. data() { return { myAttribute: 'defaultvalue' } } Vue.js (v2) 生命周期钩子文档 在组件内执行 console.log(this) 时的示例输出: 您也可以像这样传递“item.id”: <button type="button" @click="deleteItem(item.id)">Delete</button> 一个简单的选项是将 id 绑定到删除按钮 <button type="button" class="btn btn-danger" @click.prevent="deleteItem(this)" :data-id=item.id data-dismiss="modal"> Delete </button>

回答 4 投票 0

用于初始加载的 vue 应用程序挂钩

我们有一个应用程序加载器,它会在最初加载应用程序时显示。 我的解决方案是挂钩布局的“已安装”挂钩,因为所有页面共享相同的布局...

回答 1 投票 0

Vue.js 动态 <style> 带变量

是否可以在style中添加动态变量? 我的意思是: 。班级名称 { 背景图像({{project.background}}); } @media all 和 (-webkit-min-d...</desc> <question vote="91"> <p>是否可以在style中添加动态变量?</p> <p>我的意思是:</p> <pre><code>&lt;style&gt; .class_name { background-image({{project.background}}); } @media all and (-webkit-min-device-pixel-ratio : 1.5), all and (-o-min-device-pixel-ratio: 3/2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) { .class_name { background-image({{project.background_retina}}); } } &lt;/style&gt; </code></pre> </question> <answer tick="false" vote="67"> <p>使用 <a href="https://blog.vuejs.org/posts/vue-3.2.html" rel="noreferrer">Vue.js 3.2</a>,你可以像这样做<a href="https://v3.vuejs.org/api/sfc-style.html#state-driven-dynamic-css" rel="noreferrer">状态驱动的动态 CSS</a>:</p> <pre><code>&lt;template&gt; &lt;h1 id=&#34;script&#34;&gt;Script&lt;/h1&gt; &lt;h1 id=&#34;scriptSetup&#34;&gt;Script setup&lt;/h1&gt; &lt;/template&gt; &lt;script&gt; export default { data() { return { colorFromScript: &#39;red&#39; } } } &lt;/script&gt; &lt;script setup&gt; const colorFromScriptSetup = &#39;green&#39; &lt;/script&gt; &lt;style&gt; #script { color: v-bind(&#39;colorFromScript&#39;) } #scriptSetup { color: v-bind(&#39;colorFromScriptSetup&#39;) } &lt;/style&gt; </code></pre> <p><a href="https://stackblitz.com/edit/vue-js-dynamic-style-with-variables?file=src/App.vue" rel="noreferrer">请参阅此处的实现</a></p> </answer> <answer tick="false" vote="65"> <p>我也遇到了同样的问题。我一直在尝试使用数据库中的背景颜色值。我找到了一个很好的解决方案,在内联 CSS 上添加背景颜色值,该值是我从数据库设置的。</p> <pre><code>&lt;img :src=&#34;/Imagesource.jpg&#34; alt=&#34;&#34; :style=&#34;{&#39;background-color&#39;:Your_Variable_Name}&#34;&gt; </code></pre> </answer> <answer tick="false" vote="41"> <p>包含动态样式的最佳方法是使用<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/var" rel="noreferrer">CSS变量</a>。为了避免内联样式,同时获得动态样式的好处(或必要性 - 例如,数据负载中的用户定义颜色),请在 <em><code>&lt;style&gt;</code></em> 内部使用 <pre><code>&lt;template&gt;</code></pre> 标签(以便 Vue 可以插入值) )。使用 <pre></pre><code>:root</code><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:root" rel="noreferrer"> 伪类<pre> 来包含变量,以便可以在应用程序的 CSS 范围内访问它们。</pre> </a>请注意,某些 CSS 值,</p>如 <p><code>url()</code><a href="https://stackoverflow.com/questions/42330075/is-there-a-way-to-interpolate-css-variables-with-url#42331003"><pre> 无法插值,因此它们需要是完整的变量。</pre> </a>示例(</p>Nuxt<p> <a href="https://nuxtjs.org/" rel="noreferrer"><code>.vue</code></a>,使用 <pre>ES6/ES2015</pre> 语法):<a href="https://www.ecma-international.org/ecma-262/6.0/" rel="noreferrer"> </a><code>&lt;template&gt; &lt;div&gt; &lt;style&gt; :root { --accent-color: {{ accentColor }}; --hero-image: url(&#39;{{ heroImage }}&#39;); } &lt;/style&gt; &lt;div class=&#34;punchy&#34;&gt; &lt;h1&gt;Pow.&lt;/h1&gt; &lt;/div&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { data() { return { accentColor: &#39;#f00&#39;, heroImage: &#39;https://vuejs.org/images/logo.png&#39;, }}, } &lt;/script&gt; &lt;style&gt; .punchy { background-image: var(--hero-image); border: 4px solid var(--accent-color); display: inline-block; width: 250px; height: 250px; } h1 { color: var(--accent-color); } &lt;/style&gt; </code></p> <pre>还在 </pre>Codepen<p> 上创建了一个替代的更复杂的可运行示例。<a href="https://codepen.io/mickeymullin/pen/bKVWzg" rel="noreferrer"> </a> </p> </answer>CSS <answer tick="false" vote="19"><code>&lt;style&gt;</code><p> 是静态的。我认为你不能这样做......你可能必须寻找不同的方法。<pre> </pre>您可以尝试使用</p>CSS变量<p>。例如,(下面的代码没有经过测试)<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables" rel="noreferrer"> </a><code>&lt;template&gt; &lt;div class=&#34;class_name&#34; :style=&#34;{&#39;--bkgImage&#39;: &#39;url(&#39; + project.background + &#39;)&#39;, &#39;--bkgImageMobile&#39;: &#39;url(&#39; + project.backgroundRetina + &#39;)&#39;}&#34;&gt; &lt;/div&gt; &lt;/template&gt; &lt;style&gt; .class_name{ background-image: var(--bkgImage); } @media all and (-webkit-min-device-pixel-ratio : 1.5), all and (-o-min-device-pixel-ratio: 3/2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) { .class_name { background-image: var(--bkgImageMobile); } } &lt;/style&gt; </code></p> <pre>注意:只有最新的浏览器支持</pre>CSS变量<p>。<em> </em>如果您仍然发现模板中的 </p><code>:style</code><p> 有任何问题,请尝试此操作,<pre> </pre><code>&lt;div :style=&#34;&#39;--bkgImage: url(&#39; + project.background + &#39;); --bkgImageMobile: url(&#39; + project.backgroundRetina + &#39;)&#39;&#34;&gt; &lt;/div&gt; </code></p> <pre> </pre> </answer>当您使用Vue.js时,请使用Vue.js来更改背景,而不是CSS:<answer tick="false" vote="10"> <p></p><p> </p> <div data-babel="false" data-lang="js" data-hide="false" data-console="true"><code>var vm = new Vue({ el: &#39;#vue-instance&#39;, data: { rows: [ {value: &#39;green&#39;}, {value: &#39;red&#39;}, {value: &#39;blue&#39;}, ], item:&#34;&#34; }, methods:{ onTimeSlotClick: function(item){ console.log(item); document.querySelector(&#34;.dynamic&#34;).style.background = item; } } });</code><div> <pre><code>&lt;script src=&#34;https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.js&#34;&gt;&lt;/script&gt; &lt;div id=&#34;vue-instance&#34;&gt; &lt;select class=&#34;form-control&#34; v-model=&#34;item&#34; v-on:change=&#34;onTimeSlotClick(item)&#34;&gt; &lt;option value=&#34;&#34;&gt;Select&lt;/option&gt; &lt;option v-for=&#34;row in rows&#34;&gt; {{row.value}} &lt;/option&gt; &lt;/select&gt; &lt;div class=&#39;dynamic&#39;&gt;VALUE&lt;/div&gt; &lt;br/&gt;&lt;br/&gt; &lt;div :style=&#34;{ background: item}&#34;&gt;Another&lt;/div&gt; &lt;/div&gt;</code></pre> <pre> </pre> </div></div> <p> </p> </answer>是的,这是可能的。 Vue.js 不支持模板中的 <answer tick="false" vote="9"><code>style</code><p> 标签,但您可以通过使用 <pre><code>component</code></pre> 标签来解决这个问题。未经测试的伪代码:<pre> </pre>在您的模板中:</p> <p><code>&lt;component type=&#34;style&#34; v-html=&#34;style&#34;&gt;&lt;/component&gt; </code></p> <pre>在你的脚本中:</pre> <p><code>props: { color: String } computed: { style() { return `.myJSGeneratedStyle { color: ${this.color} }`; } } </code></p> <pre>您不应该使用此方法的原因有很多。这绝对是 hacky,并且 </pre><code>:style=&#34;&#34;</code><p> 在大多数情况下可能更好,但对于您的媒体查询问题,我认为这是一个很好的解决方案。<pre> </pre> </p> </answer>Vue 3 状态驱动的动态 CSS 变量<answer tick="false" vote="6"> <h1>我知道这有点晚了,并且正在使用 Vue.js 2,但截至目前,在 Vue.js 3 中,您可以创建状态驱动的 CSS 变量。</h1> <p>您现在可以使用 </p><code>v-bind()</code><p> 在样式标签内使用 SFC(单文件组件)状态数据。<pre> </pre>您可以在</p>此处<p>阅读有关状态驱动 CSS 变量的更多信息,或在<a href="https://www.jsnow.io/javascript/vue/vue-dynamic-css" rel="noreferrer">此处</a>阅读 Vue.js 3 文档。<a href="https://v3.vuejs.org/api/sfc-style.html#state-driven-dynamic-css" rel="noreferrer"> </a>这是一个代码示例</p> <p>示例</p> <h4><code>&lt;template&gt; &lt;div&gt; &lt;input type=&#34;text&#34; v-model=&#34;color&#34; /&gt; &lt;div class=&#34;user-input-color&#34;&gt; {{ color }} &lt;/div&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { data: () =&gt; ({ color: &#39;white&#39; }) } &lt;/script&gt; &lt;style scoped&gt; .user-input-color { background-color: v-bind(color) } &lt;/style&gt; </code></h4> <pre>这里是</pre>现场示例<p>的链接。<a href="https://vue-state-driven-css-variables-example.vercel.app/" rel="noreferrer"> </a>链接</p> <p> </p><ul>JS 现在 Vue 状态驱动 CSS 变量<li><a href="https://www.jsnow.io/javascript/vue/vue-dynamic-css" rel="noreferrer"> </a></li>Vue.js 3 文档<li><a href="https://v3.vuejs.org/api/sfc-style.html#state-driven-dynamic-css" rel="noreferrer"> </a></li>实例<li><a href="https://vue-state-driven-css-variables-example.vercel.app/" rel="noreferrer"> </a> </li> </ul> </answer>您可以使用Vue.js提供的组件标签。<answer tick="false" vote="5"> <p></p><p> </p> <div data-babel="false" data-lang="js" data-hide="false" data-console="true"><code>&lt;template&gt; &lt;component :is=&#34;`style`&#34;&gt; .cg {color: {{color}};} &lt;/component&gt; &lt;p class=&#34;cg&#34;&gt;I am green&lt;/p&gt; &lt;br/&gt; &lt;button @click=&#34;change&#34;&gt;change&lt;/button&gt; &lt;/template&gt; &lt;script&gt; export default { data(){ return { color: &#39;green&#39; } }, methods: { change() {this.color = &#39;red&#39;;} } } &lt;/script&gt;</code><div> <pre> </pre> </div></div> <p> </p> </answer>我遇到了同样的问题,我找到了一个适合我的需求(也许也适合你的需求)的方法。<answer tick="false" vote="2"> <p>由于 </p><code>&lt;style&gt;</code><p> 包含在 <pre><code>&lt;head&gt;</code></pre> 中,因此有一种方法可以使其发挥作用:<pre> </pre>我们根据页面/组件的状态生成 CSS 内容作为计算属性</p> <p><code>computed: { css() { return `&lt;style type=&#34;text/css&#34;&gt; .bg { background: ${this.bg_color_string}; }&lt;/style&gt;` } } </code></p> <pre>现在,我们的样式是字符串,唯一的挑战是将其传递给浏览器。</pre> <p>我将此添加到我的</p><code>&lt;head&gt;</code><p><pre> </pre><code>&lt;style id=&#34;customStyle&#34;&gt;&lt;/style&gt; </code></p> <pre>然后,页面加载后我会调用 </pre><code>setInterval</code><p>。<pre> </pre><code> mounted() { setInterval(() =&gt; this.refreshHead(), 1000); } </code></p> <pre>我这样定义刷新头:</pre> <p><code>methods: { refreshHead() { document.getElementById(&#39;customStyle&#39;).innerHTML = this.css } } </code></p> <pre> </pre> </answer>我需要编写完全动态的样式,所以我使用了 Vue 系统之外的方法:<answer tick="false" vote="1"> <p><code>{ // Other properties. watch: { myProp: { handler() { this.styleElement.innerHTML = this.myProp.css; }, deep: true, }, }, mounted() { this.styleElement = this.document.createElement(&#39;style&#39;); this.styleElement.innerText = this.myProp.css; this.document.head.append(this.styleElement); }, unmounted() { this.styleElement.remove(); }, } </code></p> <pre>尽管 CSS 足够大可能会存在一些性能问题。</pre> <p> </p> </answer>简单来说,这就是您在 Vue.js 和 <answer tick="false" vote="0">Nuxt.js 中的做法<p>:<a href="https://en.wikipedia.org/wiki/Nuxt.js" rel="nofollow noreferrer"> </a><code>&lt;template&gt; &lt;div&gt; &lt;img :src=&#34;dynamicImageURL&#34; alt=&#34;&#34; :style=&#34;&#39;background-color&#39;:backgroundColor&#34;/&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default{ data(){ return { dynamicImageURL=&#39;myimage.png&#39;, backgroundColor=&#39;red&#39;, } } } &lt;/script&gt; </code></p> <pre> </pre> </answer>我喜欢@mickey-mullin 的回复,但并非一切都完全有效。 <answer tick="false" vote="0"><code>url</code><p>错过了<pre><code>require</code></pre>,尽管他帖子中的信息对我的情况帮助很大。<pre> </pre></p><code>var()</code><p>,<pre><code>url()</code></pre>,多个三元运算符(我自己的情况 - 你不应该需要它),我能够以这样的方式为<pre><code>background-image</code></pre>这样做:<pre> </pre></p>模板<p><strong> </strong><code>&lt;div :style=&#34;[ case1 ? { &#39;--iconUrl&#39;: `url(${require(&#39;../../../public/icon1.svg&#39;)})`} : case2 ? { &#39;--iconUrl&#39;: `url(${require(&#39;../../../public/icon2.svg&#39;)})`} : { &#39;--iconUrl&#39;: `url(${require(&#39;../../../public/default.svg&#39;)})` }, ]&#34; class=&#34;myClass&#34;&gt; </code></p> <pre></pre>款式<p><strong> </strong><code>div.myClass::before { background-image: var(--iconUrl); } </code></p> <pre>注意:我不必在我的 </pre><code>iconUrl</code><p> -> <pre><code>data()</code></pre> 中声明 <pre><code>return</code></pre>。<pre> </pre> </p> </answer>这很简单,如果已经使用框架/CSS 变量就更好了。<answer tick="false" vote="0"> <p>通过向 html 添加样式,根据加载的“动态 css”覆盖根/变量</p> <p></p>在这种情况下,在你的CSS中使用CSS变量<p><strong> </strong><code>&lt;style&gt; .myTheme{ color:var(--theme-color) } &lt;/style&gt; </code></p> <pre>然后有一个计算属性,例如:</pre> <p><code>computed:{ accountTheme(){ return {&#34;--theme-color&#34;:this.themeColor} } } </code></p> <pre>然后无论什么方法可以改变这种动态主题,你都可以这样做</pre> <p><code>methods:{ load(){ .... this.themeColor=&#34;red&#34; } } </code></p> <pre>将该动态样式应用于 html 元素</pre> <p><code>&lt;html :style=&#34;accountTheme&#34;&gt;&lt;/html&gt; </code></p> <pre> </pre> </answer>这对我有用 - 如果您添加样式标签和定义,它应该可以工作。<answer tick="false" vote="0"> <p><code>&lt;template&gt; &lt;div class=&#34;wrap&#34;&gt; &lt;div v-html=&#34;customStyle&#34;&gt;&lt;/div&gt; &lt;/div&gt; &lt;/template&gt; &lt;script setup&gt; import { ref } from &#34;vue&#34;; const customStyle = ref(&#34;&lt;style&gt;body{background:blue!important;}&lt;/style&gt;&#34;); &lt;/script&gt; </code></p> <pre> </pre> </answer>当使用渐进式 Vue.js(即没有 npm / 构建步骤)时,我能够使用 Vue 的动态嵌入多个 CSS 规则 <answer tick="false" vote="0"><code>&lt;component&gt;</code><p>:<pre> </pre><code>const MyComponent = { template:`&lt;div&gt; &lt;component is=&#34;style&#34; v-html=&#34;css&#34;&gt;&lt;/component&gt; &lt;/div&gt;`, setup() { const css = ` .animation-pulse { animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(0.8); box-shadow: 0 0 0 0 rgba(229, 62, 62, 1); } 70% { transform: scale(1); box-shadow: 0 0 0 60px rgba(229, 62, 62, 0); } 100% { transform: scale(0.8); } }` return { css } } } </code></p> <pre> </pre></answer>

回答 0 投票 0

如果将带有html标签的字符串数据(名称:test)放在“<div v-html="test"/>”中,则标签不起作用

我正在使用Vue2。 但是,如果将带有 html 标签的字符串 data(name : test) 放入 中,则这些标签不起作用。 像 h2 这样的标签是可见的。 然而,em标签,ol标签,li ta... 我正在使用Vue2。 但是,如果您将字符串数据(名称:test)与html标签放入<div v-html="test"/>中,则标签不起作用。 h2 等标签可见。 但是,em 标签、ol 标签、li 标签、hr 标签、ul 标签和 blockquote 标签不会应用并显示在屏幕上。 HTML标签如何正确应用并显示在屏幕上? 这个例子非常简单。我想要的也很简单。 我希望你可以帮助我。谢谢你。 <template> <div> <div v-html="test"></div> </div> </template> <script> export default { data() { return { test: '<em>tttttest</em>', }; }, }; </script> 我给你看我跑的照片。 new Vue({ el: '#app', // Vue 인스턴스를 연결할 DOM 요소 선택자 data() { return { test: '<em>tttttest</em>', // 데이터 속성 }; }, }); <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue.js Example</title> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script> </head> <body> <div id="app"> <div v-html="test"></div> </div> </body> </html> 它在片段中运行良好。我知道。但在我当地的 vue 项目中,该任务不起作用。原因是什么以及如何解决? 作用域组件样式 文档:Vue 加载器:作用域 CSS Vue 加载器提供了要限定范围的组件样式标签。这意味着样式仅适用于该组件。 语法: <style scoped> em { font-style: italic; } </style> 覆盖 CSS 样式 如果上述内容看起来过于繁琐,无法仅向组件应用一种额外的样式,则您可以使用自己的样式覆盖任何样式。 只需选择一个出现在顶部的选择器即可。通常通过使用更强的选择器或使用相同的选择器但位于较晚的 CSS 文件中(如果选择器相同,则顺序很重要)。 有关此问题的更深入讨论,请参阅:CSS 特异性 简而言之:CSS 的创建是为了让样式定义可以被后面的样式定义或更具体的选择器覆盖。无需“卸载”当前样式即可应用您自己的样式。只需覆盖它即可。 这也有助于浏览器缓存,因为您始终将相同的 CSS 文件发送到浏览器,浏览器可以将其保留在缓存中。 覆盖示例: /* Strongly override using an ID and element name */ #app em { font-style: italic; } /* Only override em (might not work if there are more specific selectors) */ em { font-style: italic; } /* Only use em but give it a specific class */ em.italic { font-style: italic; } 一般情况下,请检查浏览器开发人员工具将哪些选择器应用于元素,然后选择适当的选择器来覆盖样式。

回答 1 投票 0

Vue 和 Quasar 对数滑块

我正在使用 Vue 2 和 Quasar 1 开发一个项目,我正在尝试创建一个对数滑块。我在此代码笔中获得了一个使用本机输入滑块的基本示例: https://codepen...

回答 1 投票 0

如何更改 Vuetify v-date-picker 组件中的事件符号?

v-date-picker 组件可以显示事件的点。我想指出可用性(我们的用例涉及特定日期云覆盖百分比的可视化)。我该怎么办

回答 1 投票 0

在子组件中传递vue槽

是否有可能像这样访问更深层次嵌套的子组件中的 Vue 槽? 内容 ...

回答 2 投票 0

ul 的要点不显示

我正在尝试使用无序列表显示用户列表,该列表显示良好,但没有项目符号点: 我正在尝试使用无序列表显示用户列表,该列表显示良好,但没有项目符号点: <ul> <li v-for="u in users" :key="u.id" > <span>{{ u.name }}</span> </li> </ul> 下面的图片显示了检查模式下的 css 只需添加您想要的样式,如下所示: ul { list-style-type: disc; /* or 'circle' or 'square' */ }

回答 1 投票 0

如何在vuejs中调度像promise.all这样的所有action

异步验证(){ this.$store.dispatch('设置', { key: this.value }).then(() => { this.$store.dispatch('verifyToken', { id: this.$store.state.token }) ...

回答 1 投票 0

Vue 命名槽在包装时不起作用

我有一个响应式菜单组件,我想在我的模板标记中使用命名插槽: 我有一个响应式菜单组件,我想在我的模板标记中使用命名插槽: <template> <div class="responsive-menu"> <div class="menu-header"> <slot name="header"></slot> </div> </div> </template> 每当我尝试像这样命名的插槽时,它都工作得很好: <responsive-menu> <h3 slot="header">Responsive menu header</h3> </responsive-menu> 但是,一旦我用类包装它,就什么也没有出现了。 <responsive-menu> <div class="container"> <h3 slot="header">Responsive menu header</h3> </div> </responsive-menu> 这是怎么回事?我不应该能够包装指定的组件吗?我的命名插槽需要是我的 Vue 组件的直接子级,这看起来是怎样的? 它不起作用,因为您的“包装槽”不是响应式菜单标记的直接子代。 尝试类似的事情: <responsive-menu> <div class="container" slot="header"> <h3>Responsive menu header</h3> </div> </responsive-menu> jsfiddle 它适用于 Vue >= 2.6。只需升级 vue 和 vue-template-compiler 即可。 您可以像v-slot一样使用它,因为slot语法已被弃用,如此处: <responsive-menu> <div class="container"> <h3 v-slot:header>Responsive menu header</h3> </div> </responsive-menu> 或简写: <responsive-menu> <div class="container"> <h3 #header>Responsive menu header</h3> </div> </responsive-menu>

回答 3 投票 0

更新的生命周期事件:仅在特定元素上的 dom 更新后使用观察者进行操作

在 Vue 中,有“更新的”生命周期方法,该方法适合在数据进入后对我的标记进行处理。在我的例子中,我手动推动 SVG 文本以与其后面的内容对齐

回答 2 投票 0

我不能使用Vue2.7和Webpack5吗?

我搜索了几个小时并红了数千个帖子,但没有找到合适的解决方案。 我想将 Webpack5 与 Vue2 一起使用。 因此,我将 vue 升级到 ^2.7.14 并将 vue/cli 升级到 ^5.0.6。 是...

回答 1 投票 0

Vue 3 外部状态反应性

我有一个模式,用来尝试在 vanilla js 中保留尽可能多的逻辑(单元测试、数据获取等),并使用 Vue 来处理渲染或仅在框架中可能的任何其他功能。那个...

回答 1 投票 0

如何只提取一次无线电组过滤数据,而不是针对数据库中的每个条目提取数据?

我正在创建一个无线电组选择器来过滤返回的数据,但我陷入了最后一个区域。 它会拉动所有正确的“焦点区域”,但是它会针对

回答 1 投票 0

如何在vuejs2中调用计算函数

如何调用计算属性。我有一些场景,根据条件调用 false 和 true,但计算的结果没有更新。请指导回忆 getData(); 如何调用计算属性。我有一些场景,根据条件调用 false 和 true,但计算的结果没有更新。请指导回忆 getData(); <component record="getData"/> computed: { getData(){ let options = { call: true, select: true } return { options, change: this.change } } }, methods: { change(){ this.options.call = false } } 如果您希望计算属性根据 options.call 的值更改进行更新,则必须首先将 options 添加到您尚未创建的组件的 数据对象 中,使其成为 反应性。 一旦将 options 添加到 data,它就会成为组件状态的一部分,这使得它可以在组件的其余部分中作为 this.options 进行访问。现在你的 change() 方法将能够影响它。您的计算属性应该重写为返回 this.options,而不是创建它自己的本地范围 options export default { data() { return { options: { call: true, select: true } } }, computed: { getData() { return { options: this.options, change: this.change } } }, methods: { change(){ this.options.call = false } } } Vue Playground 示例

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.