• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX  ›  程序员

vue 的一个问题

  •  2
     
  •   yantianqi · Jun 5, 2017 · 4260 views
    This topic created in 3442 days ago, the information mentioned may be changed or developed.
    <body>
    	<div id="app">
    		<button @click="add">添加</button>
    		<div id="side"></div>
    	</div>
    	<script>
    		new Vue({
    			el: '#app',
    			methods:{
    				add(){
    					var div = document.getElementById('side');
    					div.innerHTML='<button @click="show"></button>'
    				},
    				show(){
    					alert('123')
    				}
    			}
    		})
    	</script>
    </body>
    

    如上面的代码?
    其中由 js 插进去的 vue 有办法解析吗?
    因为有用到插件的时候,插件利用 js 把 html 代码插入到了页面

    13 replies  •  2017-06-06 09:34:26 +08:00
    airyland
    airyland
    Jun 5, 2017 via iPhone
    1
    不能
    AKI
    AKI
    Jun 5, 2017
    2
    没办法解析,你可以把 dom 写进去,然后用一个 if 不就可以了么?
    Troevil
    Troevil
    Jun 5, 2017
    3
    使用 v-if ,不要动态插入
    ldlood
    ldlood
    Jun 5, 2017
    4
    为什么不用 v-show/v-if
    dnxbf321
    dnxbf321
    Jun 5, 2017
    5
    forceUpdate 试试
    coo
    coo
    Jun 5, 2017
    6
    Vue 提供了 v-html 功能。
    mufeng
    mufeng
    Jun 5, 2017
    7
    v-if 就好了
    az8321550924
    az8321550924
    Jun 5, 2017
    8
    你要明白什么是声明式语法
    Aresn
    Aresn
    Jun 5, 2017
    9
    可以的。iView 项目的 2.0.0-rc.13 版本之前,Table 组件都是用这种方法来自定义渲染单元格内容。代码详见:
    https://github.com/iview/iview/blob/2.0/src/components/table/cell.vue
    但这种办法在某些情况下是存在问题的(比如计算属性),所以 rc.14 版本开始使用 Render 函数了。
    ExploreWay
    ExploreWay
    Jun 5, 2017
    10
    正在学习 vue,楼主能问一下,express 和 vue 有什么关系,区别,联系吗?怎么结合在一起开发,有相关的案例或教程吗?新手,希望指导。
    wxsm
    wxsm
    Jun 5, 2017
    11
    不行。不过就算可以,这种垃圾代码写出来良心不会痛吗。
    wly19960911
    wly19960911
    Jun 5, 2017
    12
    @ExploreWay
    #10 express 是 nodejs 的一个后台服务器框架,区别不用说了,
    联系是每次改变你的代码内容都需要重新进行 webpack 打包,他们使用 express 去作为服务器运行你的 vue 应用,然后每次改变自动打包,通过服务器自动把改变发给你当前调试这个 vue 应用的浏览器,不用手动刷新或者手动 webpack 打包
    skadi
    skadi
    Jun 6, 2017
    13
    强行写得话,你的 innerHTML 可以写[render]( https://cn.vuejs.org/v2/api/#render)
    不过更好的方法不是大家都说了么.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1736 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    ♥ Do have faith in what you're doing.